diff --git a/android/src/mindustry/android/AndroidLauncher.java b/android/src/mindustry/android/AndroidLauncher.java index 7400bd37a8..b3ee4723cc 100644 --- a/android/src/mindustry/android/AndroidLauncher.java +++ b/android/src/mindustry/android/AndroidLauncher.java @@ -166,29 +166,33 @@ public class AndroidLauncher extends AndroidApplication{ }}); checkFiles(getIntent()); + try{ + //new external folder + Fi data = Core.files.absolute(getContext().getExternalFilesDir(null).getAbsolutePath()); + Core.settings.setDataDirectory(data); - //new external folder - Fi data = Core.files.absolute(getContext().getExternalFilesDir(null).getAbsolutePath()); - Core.settings.setDataDirectory(data); + //move to internal storage if there's no file indicating that it moved + if(!Core.files.local("files_moved").exists()){ + Log.info("Moving files to external storage..."); - //move to internal storage if there's no file indicating that it moved - if(!Core.files.local("files_moved").exists()){ - Log.info("Moving files to external storage..."); - - try{ - //current local storage folder - Fi src = Core.files.absolute(Core.files.getLocalStoragePath()); - for(Fi fi : src.list()){ - fi.copyTo(data); + try{ + //current local storage folder + Fi src = Core.files.absolute(Core.files.getLocalStoragePath()); + for(Fi fi : src.list()){ + fi.copyTo(data); + } + //create marker + Core.files.local("files_moved").writeString("files moved to " + data); + Core.files.local("files_moved_103").writeString("files moved again"); + Log.info("Files moved."); + }catch(Throwable t){ + Log.err("Failed to move files!"); + t.printStackTrace(); } - //create marker - Core.files.local("files_moved").writeString("files moved to " + data); - Core.files.local("files_moved_103").writeString("files moved again"); - Log.info("Files moved."); - }catch(Throwable t){ - Log.err("Failed to move files!"); - t.printStackTrace(); } + }catch(Exception e){ + //print log but don't crash + Log.err(e); } } diff --git a/core/assets-raw/sprites/items/item-blast-compound.png b/core/assets-raw/sprites/items/item-blast-compound.png index cc45da15db..1b103c7c9d 100644 Binary files a/core/assets-raw/sprites/items/item-blast-compound.png and b/core/assets-raw/sprites/items/item-blast-compound.png differ diff --git a/core/assets-raw/sprites/items/item-coal.png b/core/assets-raw/sprites/items/item-coal.png index 13df71b603..4f67e0a80e 100644 Binary files a/core/assets-raw/sprites/items/item-coal.png and b/core/assets-raw/sprites/items/item-coal.png differ diff --git a/core/assets-raw/sprites/items/item-copper.png b/core/assets-raw/sprites/items/item-copper.png index 74f6bd94ed..e35ef78511 100644 Binary files a/core/assets-raw/sprites/items/item-copper.png and b/core/assets-raw/sprites/items/item-copper.png differ diff --git a/core/assets-raw/sprites/items/item-graphite.png b/core/assets-raw/sprites/items/item-graphite.png index 47bbcb1506..3d802be63f 100644 Binary files a/core/assets-raw/sprites/items/item-graphite.png and b/core/assets-raw/sprites/items/item-graphite.png differ diff --git a/core/assets-raw/sprites/items/item-lead.png b/core/assets-raw/sprites/items/item-lead.png index 35595097ca..f42443997b 100644 Binary files a/core/assets-raw/sprites/items/item-lead.png and b/core/assets-raw/sprites/items/item-lead.png differ diff --git a/core/assets-raw/sprites/items/item-metaglass.png b/core/assets-raw/sprites/items/item-metaglass.png index 6b6d36240f..4707552a2c 100644 Binary files a/core/assets-raw/sprites/items/item-metaglass.png and b/core/assets-raw/sprites/items/item-metaglass.png differ diff --git a/core/assets-raw/sprites/items/item-phase-fabric.png b/core/assets-raw/sprites/items/item-phase-fabric.png index 174215dd86..8dd6efca38 100644 Binary files a/core/assets-raw/sprites/items/item-phase-fabric.png and b/core/assets-raw/sprites/items/item-phase-fabric.png differ diff --git a/core/assets-raw/sprites/items/item-plastanium.png b/core/assets-raw/sprites/items/item-plastanium.png index 3d51e7562e..f6ddf438fc 100644 Binary files a/core/assets-raw/sprites/items/item-plastanium.png and b/core/assets-raw/sprites/items/item-plastanium.png differ diff --git a/core/assets-raw/sprites/items/item-pyratite.png b/core/assets-raw/sprites/items/item-pyratite.png index 77012a522d..987fdca8c0 100644 Binary files a/core/assets-raw/sprites/items/item-pyratite.png and b/core/assets-raw/sprites/items/item-pyratite.png differ diff --git a/core/assets-raw/sprites/items/item-sand.png b/core/assets-raw/sprites/items/item-sand.png index ed025f9931..79ddca5d30 100644 Binary files a/core/assets-raw/sprites/items/item-sand.png and b/core/assets-raw/sprites/items/item-sand.png differ diff --git a/core/assets-raw/sprites/items/item-scrap.png b/core/assets-raw/sprites/items/item-scrap.png index 45df8819fc..242b66db66 100644 Binary files a/core/assets-raw/sprites/items/item-scrap.png and b/core/assets-raw/sprites/items/item-scrap.png differ diff --git a/core/assets-raw/sprites/items/item-silicon.png b/core/assets-raw/sprites/items/item-silicon.png index 9014611f2c..1c498c2524 100644 Binary files a/core/assets-raw/sprites/items/item-silicon.png and b/core/assets-raw/sprites/items/item-silicon.png differ diff --git a/core/assets-raw/sprites/items/item-spore-pod.png b/core/assets-raw/sprites/items/item-spore-pod.png index 08fab9d2e8..b627c0da1b 100644 Binary files a/core/assets-raw/sprites/items/item-spore-pod.png and b/core/assets-raw/sprites/items/item-spore-pod.png differ diff --git a/core/assets-raw/sprites/items/item-surge-alloy.png b/core/assets-raw/sprites/items/item-surge-alloy.png index 789012ef13..4cac00c5e4 100644 Binary files a/core/assets-raw/sprites/items/item-surge-alloy.png and b/core/assets-raw/sprites/items/item-surge-alloy.png differ diff --git a/core/assets-raw/sprites/items/item-thorium.png b/core/assets-raw/sprites/items/item-thorium.png index b548c5acf7..6da37cfb1e 100644 Binary files a/core/assets-raw/sprites/items/item-thorium.png and b/core/assets-raw/sprites/items/item-thorium.png differ diff --git a/core/assets-raw/sprites/items/item-titanium.png b/core/assets-raw/sprites/items/item-titanium.png index b1dd24233a..69368ab751 100644 Binary files a/core/assets-raw/sprites/items/item-titanium.png and b/core/assets-raw/sprites/items/item-titanium.png differ diff --git a/core/assets-raw/sprites/items/liquid-cryofluid.png b/core/assets-raw/sprites/items/liquid-cryofluid.png index ada0f5b06d..b438a5ed37 100644 Binary files a/core/assets-raw/sprites/items/liquid-cryofluid.png and b/core/assets-raw/sprites/items/liquid-cryofluid.png differ diff --git a/core/assets-raw/sprites/items/liquid-oil.png b/core/assets-raw/sprites/items/liquid-oil.png index 16ea1670b4..51c7a8db47 100644 Binary files a/core/assets-raw/sprites/items/liquid-oil.png and b/core/assets-raw/sprites/items/liquid-oil.png differ diff --git a/core/assets-raw/sprites/items/liquid-slag.png b/core/assets-raw/sprites/items/liquid-slag.png index c482af93dd..2d51d55a8c 100644 Binary files a/core/assets-raw/sprites/items/liquid-slag.png and b/core/assets-raw/sprites/items/liquid-slag.png differ diff --git a/core/assets-raw/sprites/items/liquid-water.png b/core/assets-raw/sprites/items/liquid-water.png index a822b86412..602eee79a9 100644 Binary files a/core/assets-raw/sprites/items/liquid-water.png and b/core/assets-raw/sprites/items/liquid-water.png differ diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 3e88aef2e1..4ce05d5e0f 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -421,6 +421,7 @@ filters.empty = [lightgray]No filters! Add one with the button below. filter.distort = Distort filter.noise = Noise filter.enemyspawn = Enemy Spawn Select +filter.spawnpath = Path To Spawn filter.corespawn = Core Select filter.median = Median filter.oremedian = Ore Median @@ -445,6 +446,7 @@ filter.option.amount = Amount filter.option.block = Block filter.option.floor = Floor filter.option.flooronto = Target Floor +filter.option.target = Target filter.option.wall = Wall filter.option.ore = Ore filter.option.floor2 = Secondary Floor @@ -523,6 +525,7 @@ sectors.launch = Launch sectors.select = Select sectors.nonelaunch = [lightgray]none (sun) sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources planet.serpulo.name = Serpulo #TODO better name @@ -571,10 +574,13 @@ settings.clear.confirm = Are you sure you want to clear this data?\nWhat is done settings.clearall.confirm = [scarlet]WARNING![]\nThis will clear all data, including saves, maps, unlocks and keybinds.\nOnce you press 'ok' the game will wipe all data and automatically exit. settings.clearsaves.confirm = Are you sure you want to clear all your saves? settings.clearsaves = Clear Saves +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent]< Paused > clear = Clear banned = [scarlet]Banned -unplaceable.sectorcaptured = [scarlet]Requires captured sector yes = Yes no = No info.title = Info @@ -633,13 +639,24 @@ stat.lightningchance = Lightning Chance stat.lightningdamage = Lightning Damage stat.flammability = Flammability stat.radioactivity = Radioactivity -stat.heatcapacity = HeatCapacity +stat.heatcapacity = Heat Capacity stat.viscosity = Viscosity stat.temperature = Temperature stat.speed = Speed stat.buildspeed = Build Speed stat.minespeed = Mine Speed stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities +stat.canboost = Can Boost +stat.flying = Flying + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Better Drill Required bar.noresources = Missing Resources @@ -680,6 +697,7 @@ bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier bullet.reload = [stat]{0}[lightgray]x fire rate unit.blocks = blocks +unit.blockssquared = blocks² unit.powersecond = power units/second unit.liquidsecond = liquid units/second unit.itemssecond = items/second @@ -702,7 +720,7 @@ category.power = Power category.liquids = Liquids category.items = Items category.crafting = Input/Output -category.shooting = Shooting +category.function = Function category.optional = Optional Enhancements setting.landscape.name = Lock Landscape setting.shadows.name = Shadows @@ -710,8 +728,9 @@ setting.blockreplace.name = Automatic Block Suggestions setting.linear.name = Linear Filtering setting.hints.name = Hints setting.flow.name = Display Resource Flow Rate +setting.backgroundpause.name = Pause In Background setting.buildautopause.name = Auto-Pause Building -setting.animatedwater.name = Animated Fluids +setting.animatedwater.name = Animated Surfaces setting.animatedshields.name = Animated Shields setting.antialias.name = Antialias[lightgray] (requires restart)[] setting.playerindicators.name = Player Indicators diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index 590d8094f2..00fe18201e 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -55,6 +55,7 @@ schematic.saved = Схема захавана. schematic.delete.confirm = Гэтая схема будзе выдалена. schematic.rename = Перайменаваць схему schematic.info = {0}x{1}, {2} блокаў +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = Хваляў адлюстравана:[accent] {0} stat.enemiesDestroyed = Ворагаў знішчана:[accent] {0} @@ -100,7 +101,6 @@ done = Гатова feature.unsupported = Ваша прылада не падтрымлівае гэтую магчымасць. mods.alphainfo = Майце на ўвазе, што мадыфікацыі знаходзяцца ў альфа-версіі і [scarlet]могуць утрымліваць шмат памылак[]. Дакладвайце аб любых праблемах, якія Вы знойдзеце ў Mindustry Github або Discord. -mods.alpha = [accent](Альфа) mods = Мадыфікацыі mods.none = [lightgray]Мадыфікацыі не знойдзены! mods.guide = Кіраўніцтва па модам @@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] вылучыць і скапіяваць pausebuilding = [accent][[{0}][] для прыпынення будаўніцтва resumebuilding = [scarlet][[{0}][] для працягу будаўніцтва wave = [accent]Хваля {0} +wave.cap = [accent]Wave {0}/{1} wave.waiting = [lightgray]Хваля праз {0} wave.waveInProgress = [lightgray]Хваля працягваецца waiting = [lightgray]Чаканне… waiting.players = Чаканне гульцоў… wave.enemies = Ворагаў: [lightgray]{0} wave.enemy = Застаўся [lightgray]{0}[] ворагаў +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = Загрузіць малюнак saveimage = Захаваць малюнак unknown = Невядома @@ -328,6 +331,7 @@ editor.generation = Генерацыя: editor.ingame = Рэдагаваць ў гульні editor.publish.workshop = Апублікаваць у майстэрні editor.newmap = Новая карта +editor.center = Center workshop = Майстэрня waves.title = Хвалі waves.remove = Выдаліць @@ -416,6 +420,7 @@ filters.empty = [lightgray]Няма фільтраў! Дадайце адзін filter.distort = Скажэнне filter.noise = Шум filter.enemyspawn = Enemy Spawn Select +filter.spawnpath = Path To Spawn filter.corespawn = Core Select filter.median = Медыяна filter.oremedian = Рудня медыяна @@ -440,6 +445,7 @@ filter.option.amount = Amount filter.option.block = Блок filter.option.floor = Паверхня filter.option.flooronto = Мэтавая паверхню +filter.option.target = Target filter.option.wall = Сцяна filter.option.ore = Руда filter.option.floor2 = Другая паверхню @@ -471,15 +477,9 @@ requirement.wave = дасягнем {0} хвалі ў зоне {1} requirement.core = Знішчыце варожае ядро ​​ў зоне {0} requirement.research = Research {0} requirement.capture = Capture {0} -resume = Аднавіць зону: \n[lightgray] {0} bestwave = [lightgray]Лепшая хваля: {0} -launch = <Запуск> launch.text = Launch -launch.title = Запуск паспяховы -launch.next = [lightgray]наступная магчымасць на {0} -той хвалі -launch.unable2 = [scarlet]Запуск немагчымы.[] -launch.confirm = Гэта [accent]запусціць[] усе рэсурсы ў Вашым ядры. \nВы не зможаце вярнуцца на гэтую базу. -launch.skip.confirm = Калі Вы прапусціце цяпер, то Вы не зможаце вырабіць [accent] запуск[] да пазнейшых хваль. +research.multiplayer = Only the host can research items. uncover = Раскрыць configure = Канфігурацыя выгрузкі loadout = Loadout @@ -512,6 +512,7 @@ weather.rain.name = Rain weather.snow.name = Snow weather.sandstorm.name = Sandstorm weather.sporestorm.name = Sporestorm +weather.fog.name = Fog sectors.unexplored = [lightgray]Unexplored sectors.resources = Resources: @@ -521,6 +522,11 @@ sectors.resume = Resume sectors.launch = Launch sectors.select = Select sectors.nonelaunch = [lightgray]none (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = Ground Zero sector.craters.name = The Craters @@ -560,6 +566,10 @@ settings.clear.confirm = Вы сапраўды хочаце ачысціць с settings.clearall.confirm = [scarlet] АСЦЯРОЖНА![] \nГэта сатрэ ўсе дадзеныя, уключаючы захавання, карты, прагрэс кампаніі і налады кіравання. \nПосле таго як Вы націснеце [accent] [ОК][], гульня знішчыць усе дадзеныя і аўтаматычна зачыніцца. settings.clearsaves.confirm = Are you sure you want to clear all your saves? settings.clearsaves = Clear Saves +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent] <Паўза> clear = Ачысціць banned = [scarlet] Забаронена @@ -570,12 +580,14 @@ info.title = Інфармацыя error.title = [crimson]Адбылася памылка error.crashtitle = Адбылася памылка unit.nobuild = [scarlet]Unit can't build +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]??? + stat.input = Уваход stat.output = Выхад stat.booster = Паскаральнік stat.tiles = Неабходныя пліткі stat.affinities = Павелічэнне эфектыўнасці -block.unknown = [lightgray]??? stat.powercapacity = Умяшчальнасць энергіі stat.powershot = Энергія/Выстрэл stat.damage = Страты @@ -594,6 +606,7 @@ stat.powerconnections = Колькасць злучэнняў stat.poweruse = Спажывае энергіі stat.powerdamage = Энергія/страты stat.itemcapacity = Умяшчальнасць прадметаў +stat.memorycapacity = Memory Capacity stat.basepowergeneration = Базавая генерацыя энергіі stat.productiontime = Час вытворчасці stat.repairtime = Час поўнай рэгенерацыі @@ -613,6 +626,28 @@ stat.reload = Стрэлы/секунду stat.ammo = Боепрыпасы stat.shieldhealth = Shield Health stat.cooldowntime = Cooldown Time +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Патрабуецца свідар лепей bar.noresources = Missing Resources @@ -624,6 +659,7 @@ bar.powerbalance = Энергія: {0}/с bar.powerstored = Назапашана: {0}/{1} bar.poweramount = Энергія: {0} bar.poweroutput = Выхад энергіі: {0} +bar.powerlines = Connections: {0}/{1} bar.items = Прадметы: {0} bar.capacity = Умяшчальнасць: {0} bar.unitcap = {0} {1}/{2} @@ -635,6 +671,8 @@ bar.progress = Прагрэс будаўніцтва bar.input = Уваход bar.output = Выхад +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat] {0} [lightgray]страты bullet.splashdamage = [stat] {0} [lightgray]страты ў радыусе ~ [stat] {1} [lightgray] блокаў bullet.incendiary = [stat] запальны @@ -642,12 +680,15 @@ bullet.homing = [stat] саманаводных bullet.shock = [stat] шокавы bullet.frag = [stat] асколачны bullet.knockback = [stat] {0} [lightgray]аддачы +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat] замарожваюцца bullet.tarred = [stat] запавольвае, гаручы bullet.multiplier = [stat]{0}[lightgray]x множнік боепрыпасаў bullet.reload = [stat]{0}[lightgray]x хуткасць стрэльбы unit.blocks = блокі +unit.blockssquared = blocks² unit.powersecond = адзінак энергіі/секунду unit.liquidsecond = вадкасных адзінак/секунду unit.itemssecond = прадметаў/секунду @@ -670,7 +711,7 @@ category.power = Энергія category.liquids = Вадкасці category.items = Прадметы category.crafting = Увядзенне/Выснова -category.shooting = Стральба +category.function = Function category.optional = Дадатковыя паляпшэння setting.landscape.name = Толькі альбомны (гарызантальны) рэжым setting.shadows.name = Цені @@ -679,7 +720,6 @@ setting.linear.name = Лінейная фільтраванне setting.hints.name = Падказкі setting.flow.name = Display Resource Flow Rate[scarlet] (experimental) setting.buildautopause.name = Аўтаматычная прыпыненне будаўніцтва -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = Аніміраваныя вада setting.animatedshields.name = Аніміраваныя шчыты setting.antialias.name = Згладжванне [lightgray] (патрабуе перазапуску)[] @@ -713,7 +753,6 @@ setting.fullscreen.name = Поўнаэкранны рэжым setting.borderlesswindow.name = Безрамочное акно [lightgray] (можа спатрэбіцца перазапуск) setting.fps.name = Паказваць FPS і пінг setting.smoothcamera.name = Smooth Camera -setting.blockselectkeys.name = Паказаць клавішы выбару блока setting.vsync.name = Вертыкальная сінхранізацыя setting.pixelate.name = Пікселізацыя setting.minimap.name = Адлюстроўваць міні-карту @@ -822,6 +861,7 @@ mode.custom = Карыстальніцкія правілы rules.infiniteresources = Бясконцыя рэсурсы (Гулец) rules.reactorexplosions = Выбухі рэактараў +rules.schematic = Schematics Allowed rules.wavetimer = Інтэрвал хваляў rules.waves = Хвалі rules.attack = Рэжым атакі @@ -847,6 +887,7 @@ rules.title.unit = Баёў. адз. rules.title.experimental = эксперыментальнай rules.title.environment = Environment rules.lighting = Асвятленне +rules.enemyLights = Enemy Lights rules.fire = Fire rules.explosions = Block/Unit Explosion Damage rules.ambientlight = Навакольны свет @@ -858,6 +899,7 @@ content.item.name = Рэчывы content.liquid.name = Вадкасці content.unit.name = Баявыя адзінкі content.block.name = Блокі + item.copper.name = Медзь item.lead.name = Свінец item.coal.name = Вугаль @@ -879,23 +921,6 @@ liquid.slag.name = Шлак liquid.oil.name = Нафта liquid.cryofluid.name = Крыягенная вадкасць -item.explosiveness = [lightgray]Выбуханебяспека: {0}% -item.flammability = [lightgray]Узгаральнасць: {0}% -item.radioactivity = [lightgray]Радыёактыўнасць: {0}% - -unit.health = [lightgray]Здароўе: {0} -unit.speed = [lightgray]Хуткасць: {0} -unit.weapon = [lightgray]Weapon: {0} -unit.itemcapacity = [lightgray]Item Capacity: {0} -unit.minespeed = [lightgray]Mining Speed: {0}% -unit.minepower = [lightgray]Mining Power: {0} -unit.ability = [lightgray]Ability: {0} -unit.buildspeed = [lightgray]Building Speed: {0}% - -liquid.heatcapacity = [lightgray]Цеплаёмістасць: {0} -liquid.viscosity = [lightgray]Глейкасць: {0} -liquid.temperature = [lightgray]Тэмпература: {0} - unit.dagger.name = Кінжал unit.mace.name = Mace unit.fortress.name = Крэпасць @@ -936,6 +961,7 @@ block.cliff.name = Скала block.sand-boulder.name = Пяшчаны валун block.grass.name = Трава block.slag.name = Шлак +block.space.name = Space block.salt.name = Соль block.salt-wall.name = Salt Wall block.pebbles.name = Галька @@ -981,6 +1007,7 @@ block.darksand-water.name = Тёмный пясок з вадой block.char.name = Выпаленая зямля block.dacite.name = Dacite block.dacite-wall.name = Dacite Wall +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = Заснежаны лёд block.stone-wall.name = Stone Wall block.ice-wall.name = Ice Wall @@ -1075,6 +1102,7 @@ block.power-source.name = Крыніца энергіі block.unloader.name = Разгрузчык block.vault.name = Сховішча block.wave.name = Хваля +block.tsunami.name = Tsunami block.swarmer.name = Раявiк block.salvo.name = Залп block.ripple.name = Рабь @@ -1114,6 +1142,7 @@ block.arc.name = Дуга block.rtg-generator.name = Радыеізатопны тэрмаэлектрычны генератар block.spectre.name = Спектр block.meltdown.name = Іспепяліцель +block.foreshadow.name = Foreshadow block.container.name = Кантэйнер block.launch-pad.name = Пускавая пляцоўка block.launch-pad-large.name = Вялікая пускавая пляцоўка @@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor block.logic-display.name = Logic Display block.large-logic-display.name = Large Logic Display block.memory-cell.name = Memory Cell +block.memory-bank.name = Memory Bank team.blue.name = Сіняя team.crux.name = Чырвоная @@ -1302,4 +1332,4 @@ block.cyclone.description = Вялікая турэль, якая можа ве block.spectre.description = Масіўная двуствольное гармата. Страляе буйнымі бранябойнымі кулямі па паветраных і наземных мэтах. block.meltdown.description = Масіўная лазерная гармата. Зараджае і страляе пастаянным лазерным прамянём ў бліжэйшых ворагаў. Патрабуецца астуджальная вадкасць для працы. block.repair-point.description = Бесперапынна лечыць бліжэйшую пашкоджаную баявую адзінку або мех у сваім радыусе. -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. \ No newline at end of file +block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index f9f98951dc..d1c378991e 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -20,7 +20,7 @@ gameover = Konec hry gameover.pvp = Vyhrál tým [accent]{0}[]! highscore = [accent]Nový rekord! copied = Zkopírováno. -indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[]. +indev.popup = Mindustry [accent]v6[] je aktuálně ve verzi [accent]beta[].\n[lightgray]To znamená:[]\n[scarlet]- Kampaň je nedokončená[]\n- SFX a hudba je nedokončená nebo chybí\n- Cokoli, co vidíte, se může změnit nebo být odstraněno.\n\nHlaste prosím chyby na [accent]Github[]. indev.notready = Tato část hry ještě není připravena load.sound = Zvuky @@ -100,8 +100,7 @@ committingchanges = Provádím změny done = Hotovo feature.unsupported = Tvoje zařízení nepodporuje tuto vlastnost hry. -mods.alphainfo = Měj na paměti, že modifikace jsou stále v alfa fázi vývoje a mohou být [scarlet]velmi chybové[].\nNahlaš, prosím, jakékoliv závady na GitHub nebo Discord serveru Mindustry. Děkujeme! -mods.alpha = [accent](Alfa)[] +mods.alphainfo = Měj na paměti, že modifikace jsou stále v alfa fázi vývoje a mohou být [scarlet]velmi chybové[].\nNahlaš, prosím, jakékoliv závady na GitHub Mindustry. Děkujeme! mods = Mody mods.none = [lightgray]Modifikace nebyly nalezeny.[] mods.guide = Průvodce modifikacemi @@ -279,18 +278,21 @@ quit.confirm.tutorial = Jsi si jistý?Výuku je možné znovu spustit v [accent] loading = [accent]Načítám... reloading = [accent]Načítám modifikace... saving = [accent]Ukládám... -respawn = [accent][[{0}][] k znovyzrození v jádře +respawn = [accent][[{0}][] k znovuzrození v jádře cancelbuilding = [accent][[{0}][] vyčistí plán šablony selectschematic = [accent][[{0}][] provede výběr a zkopírování pausebuilding = [accent][[{0}][] zastaví stavění resumebuilding = [scarlet][[{0}][] bude pokračovat ve stavění wave = [accent]Vlna číslo {0}[] +wave.cap = [accent]Vlna {0} z {1}[] wave.waiting = [lightgray]Vlna za {0} vteřin[] wave.waveInProgress = [lightgray]Vlna přichází![] waiting = [lightgray]Čekám...[] waiting.players = Čekání na hráče... wave.enemies = [lightgray]{0} zbývajících nepřátel wave.enemy = [lightgray]{0} zbývající nepřítel +wave.guardianwarn = Počet vln do příchodu strážce: [accent]{0}[]. +wave.guardianwarn.one = [accent]Strážce přijde již příští vlnu![] loadimage = Nahrát obrázek saveimage = Uložit obrázek unknown = Neznámý @@ -329,6 +331,7 @@ editor.generation = Generace: editor.ingame = Upravit ve hře editor.publish.workshop = Vystavit ve Workshopu na Steamu editor.newmap = Nová mapa +editor.center = Vycentrovat workshop = Workshop na Steamu waves.title = Vlny waves.remove = Odebrat @@ -338,7 +341,7 @@ waves.waves = vln(y) waves.perspawn = za zrození waves.shields = štítů/vlnu waves.to = do -waves.guardian = Guardian +waves.guardian = Strážce waves.preview = Náhled waves.edit = Upravit.... waves.copy = Uložit do schránky @@ -347,7 +350,6 @@ waves.invalid = Neplatné vlny ve schránce. waves.copied = Vlny byly zkopírovány. waves.none = Žádní nepřátelé nebyli definováni.\nVlny s prázdným rozložením budou automaticky upraveny na výchozí rozložení. -#these are intentionally in lower case wavemode.counts = počty wavemode.totals = součty wavemode.health = zdraví @@ -418,6 +420,7 @@ filters.empty = [lightgray]Nejsou zadány žádné filtry, přidej filtr tlačí filter.distort = Zkreslení filter.noise = Zašumění filter.enemyspawn = Enemy Spawn Select +filter.spawnpath = Path To Spawn filter.corespawn = Core Select filter.median = Medián filter.oremedian = Medián rud @@ -442,6 +445,7 @@ filter.option.amount = Amount filter.option.block = Blok filter.option.floor = Povrch filter.option.flooronto = Cílový povrch +filter.option.target = Target filter.option.wall = Stěna filter.option.ore = Ruda filter.option.floor2 = Druhotný povrch @@ -475,10 +479,9 @@ requirement.research = Vynalezeno {0} requirement.capture = Polapeno {0} bestwave = [lightgray]Nejvyšší vlna: {0} launch.text = Vyslat -campaign.multiplayer = Když hraješ kampaň ve hře více hráčů, můžeš vynalézat pouze pomocí věcí ze [accent]svých[] sektorů, [scarlet]ne[] ze sektoru hostitele, kde jsi právě teď.\n\nAbys získal věci do [accent]svých[] sektorů ve hře více hráčů, použij [accent]vysílací plošinu[]. +research.multiplayer = Jen hostitel hry může vynalézat nové technologie. uncover = Odkrýt mapu configure = Přizpůsobit vybavení -#TODO loadout = Načtení resources = Zdroje bannedblocks = Zakázané bloky @@ -502,13 +505,14 @@ error.mismatch = Chyba při komunikaci se serverem:\nVerze klienta a serveru se error.alreadyconnected = Připojeni k serveru. error.mapnotfound = Soubor s mapou nebyl nalezen! error.io = Vstupně/výstupní (I/O) chyba sítě. -error.any = Ueznámá chyba sítě. +error.any = Neznámá chyba sítě. error.bloom = Chyba inicializace filtru Bloom.\nTvé zařízení ho nejspíš nepodporuje. weather.rain.name = Déšť weather.snow.name = Sníh weather.sandstorm.name = Písečná ouře weather.sporestorm.name = Spórová bouře +weather.fog.name = Fog sectors.unexplored = [lightgray]Neprozkoumáno sectors.resources = Zdroje: @@ -517,9 +521,13 @@ sectors.stored = Uskladněno: sectors.resume = Pokračovat sectors.launch = Vyslat sectors.select = Vybrat -sectors.nonelaunch = [lightgray]žádné (slunce)[] +sectors.nonelaunch = [lightgray]bez (slunce)[] +sectors.rename = Přejmenovat sektor +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sol -#NOTE TO TRANSLATORS: don't bother editing these, they'll be removed and/or rewritten anyway sector.groundZero.name = Základní tábor sector.craters.name = Krátery sector.frozenForest.name = Zamrzlý les @@ -532,10 +540,6 @@ sector.tarFields.name = Dehtová pole sector.saltFlats.name = Solné nížiny sector.fungalPass.name = Plísňový průsmyk -#unused -#sector.impact0078.name = Impact 0078 -#sector.crags.name = Crags - sector.groundZero.description = Optimální místo, kde znovu začít. Nízký výskyt nepřátel. Několik málo surovin.\nPosbírej co nejvíce olova a mědi.\nBěž dál. sector.frozenForest.description = Dokonce až sem, blízko hor, se dokázaly spóry rozrůst. Mráz je však nemůže zadržet navěky.\n\nPusť se do práce za pomocí energie. Stav spalovací generátory. Nauč se, jak používat opravovací věže. sector.saltFlats.description = Na okraji pouště leží Solné nížiny. V této lokaci se nachází jen několik málo surovin.\n\nNepřítel zde vybudoval zásobovací komplex. Znič jádro v jeho základně. Nenechej kámen na kameni. @@ -560,8 +564,12 @@ settings.graphics = Grafika settings.cleardata = Vymazat data hry... settings.clear.confirm = Jsi si jistý, že chceš vymazat Tvá data ve hře?\nTento krok je nevratný! settings.clearall.confirm = [scarlet]Varování![]\nToto vyresetuje všechna Tvá data ve hře, včetně uložení hry, map, odemknutého postupu v kampani a nastavení ovládání.\nJakmile stiskneš "OK", všechna data se vymažou a hra se automaticky ukončí. -settings.clearsaves.confirm = Are you sure you want to clear all your saves? -settings.clearsaves = Clear Saves +settings.clearsaves.confirm = Opravdu chceš vymazat veškeré Tvé uložené hry? +settings.clearsaves = Vymazat uložené hry +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent]< Pozastaveno >[] clear = Vyčistit banned = [scarlet]Zakázán[] @@ -572,12 +580,14 @@ info.title = Informace error.title = [scarlet]Objevila se chyba[] error.crashtitle = Objevila se chyba unit.nobuild = [scarlet]Jednotka nemůže stavět +lastaccessed = [lightgray]Naposledy použil: {0} +block.unknown = [lightgray]???[] + stat.input = Vstup stat.output = Výstup stat.booster = Posilovač stat.tiles = Vyžadované dlaždice stat.affinities = Synergie -block.unknown = [lightgray]???[] stat.powercapacity = Kapacita energie stat.powershot = Energie na 1 výstřel stat.damage = Poškození @@ -616,6 +626,28 @@ stat.reload = Střel za 1s stat.ammo = Střelivo stat.shieldhealth = Zdraví štítu stat.cooldowntime = Čas na zchladnutí +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Je vyžadován lepší vrt bar.noresources = Chybějí zdroje @@ -627,6 +659,7 @@ bar.powerbalance = Energie: {0} bar.powerstored = Uskladněno: {0}/{1} bar.poweramount = Energie celkem: {0} bar.poweroutput = Výstup energie: {0} +bar.powerlines = Spojení: {0}/{1} bar.items = Předměty: {0} bar.capacity = Kapacita: {0} bar.unitcap = {0} {1}/{2} @@ -646,13 +679,16 @@ bullet.incendiary = [stat]zápalné bullet.homing = [stat]samonaváděcí bullet.shock = [stat]šokové bullet.frag = [stat]trhavé -bullet.knockback = [stat]{0}[lightgray] odhození -bullet.freezing = [stat]mrazivé -bullet.tarred = [stat]dehtové -bullet.multiplier = [stat]{0}[lightgray]x více střel -bullet.reload = [stat]{0}[lightgray]x rychlost střelby +bullet.knockback = [stat]{0}[lightgray] odhození[] +bullet.pierce = [stat]{0}[lightgray]x průrazné[] +bullet.infinitepierce = [stat]průrazné[] +bullet.freezing = [stat]zmrazující[] +bullet.tarred = [stat]dehtující[] +bullet.multiplier = [stat]{0}[lightgray]x více střel[] +bullet.reload = [stat]{0}[lightgray]x rychlost střelby[] unit.blocks = bloky +unit.blockssquared = blocks² unit.powersecond = energie/sekunda unit.liquidsecond = kapalin/sekundu unit.itemssecond = předmětů/sekundu @@ -675,7 +711,7 @@ category.power = Energie category.liquids = Kapaliny category.items = Předměty category.crafting = Vstup/Výstup -category.shooting = Střílí +category.function = Function category.optional = Volitelné vylepšení setting.landscape.name = Uzamknout krajinu setting.shadows.name = Stíny @@ -684,7 +720,6 @@ setting.linear.name = Lineární filtrování setting.hints.name = Rady a tipy setting.flow.name = Zobrazit rychlost toku zdroje [scarlet](experimentální)[] setting.buildautopause.name = Automaticky pozastavit stavění -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = Animované tekutiny setting.animatedshields.name = Animované štíty setting.antialias.name = Použít antialias [lightgray](vyžaduje restart)[] @@ -718,7 +753,6 @@ setting.fullscreen.name = Celá obrazovka setting.borderlesswindow.name = Bezokrajové okno[lightgray] (může výt vyžadován restart)[] setting.fps.name = Ukázat FPS a ping setting.smoothcamera.name = Plynulá kamera -setting.blockselectkeys.name = Ukázat klávesy při práci s blokem setting.vsync.name = Vertikální synchronizace setting.pixelate.name = Rozpixlovat setting.minimap.name = Ukázat mapičku @@ -761,7 +795,7 @@ keybind.press = Stiskni klávesu... keybind.press.axis = Stiskni osu ovladače nebo klávesu... keybind.screenshot.name = Snímek mapy keybind.toggle_power_lines.name = Přepnout zobrazení energetického vedení -keybind.toggle_block_status.name = Toggle Block Statuses +keybind.toggle_block_status.name = Přepnout stav bloku keybind.move_x.name = Pohyb vodorovně keybind.move_y.name = Pohyb svisle keybind.mouse_move.name = Následovat myš @@ -865,6 +899,7 @@ content.item.name = Předměty content.liquid.name = Kapaliny content.unit.name = Jednotky content.block.name = Bloky + item.copper.name = Měď item.lead.name = Olovo item.coal.name = Uhlí @@ -886,23 +921,6 @@ liquid.slag.name = Roztavený kov liquid.oil.name = Nafta liquid.cryofluid.name = Chladící kapalina -item.explosiveness = [lightgray]Výbušnost: {0}%[] -item.flammability = [lightgray]Zápalnost: {0}%[] -item.radioactivity = [lightgray]Radioaktivita: {0}%[] - -unit.health = [lightgray]Životy: {0}[] -unit.speed = [lightgray]Rychlost: {0}[] -unit.weapon = [lightgray]Zbraň: {0} -unit.itemcapacity = [lightgray]Kapacita: {0} -unit.minespeed = [lightgray]Rychlost těžení: {0}% -unit.minepower = [lightgray]Těžební síla: {0} -unit.ability = [lightgray]Schopnost: {0} -unit.buildspeed = [lightgray]Rychlost stavění: {0}% - -liquid.heatcapacity = [lightgray]Teplotní kapacita: {0}[] -liquid.viscosity = [lightgray]Viskozita: {0}[] -liquid.temperature = [lightgray]Teplota: {0}[] - unit.dagger.name = Dýka unit.mace.name = Palcát unit.fortress.name = Pevnost @@ -943,6 +961,7 @@ block.cliff.name = Útes block.sand-boulder.name = Pískovec block.grass.name = Tráva block.slag.name = Slag +block.space.name = Vesmír block.salt.name = Sůl block.salt-wall.name = Solné skály block.pebbles.name = Oblázky @@ -988,8 +1007,9 @@ block.darksand-water.name = Voda s černým pískem block.char.name = Dřevěné uhlí block.dacite.name = Dacit block.dacite-wall.name = Stěna dacitu +block.dacite-boulder.name = Dacitový kámen block.ice-snow.name = Zasněžený led -block.stone-wall.name = Stone Wall +block.stone-wall.name = Kamenné skály block.ice-wall.name = Ledové skály block.snow-wall.name = Sněhové skály block.dune-wall.name = Písečné duny @@ -1034,7 +1054,7 @@ block.hail.name = Kroupomet block.lancer.name = Kopiník block.conveyor.name = Dopravník block.titanium-conveyor.name = Titanoový dopravník -block.plastanium-conveyor.name = Plastanium Conveyor +block.plastanium-conveyor.name = Plastanový přepravník block.armored-conveyor.name = Obrněný dopravník block.armored-conveyor.description = Přepravuje předměty stejně rychle jako titanový přepravník, ale má navíc brnění. Přijímá předměty ze srtan pouze z jiných přepravníků. block.junction.name = Křižovatka @@ -1082,8 +1102,8 @@ block.power-source.name = Nekonečný zdroj energie block.unloader.name = Odbavovač block.vault.name = Trezor block.wave.name = Vlna -block.swarmer.name = Rojiště block.tsunami.name = Tsunami +block.swarmer.name = Rojiště block.salvo.name = Salva block.ripple.name = Vlnění block.phase-conveyor.name = Fázový přepravník @@ -1261,7 +1281,7 @@ block.rotary-pump.description = Pokročilé čerpadlo, které za pomoci energie block.thermal-pump.description = Ultimátní čerpadlo. Nejrychlejší čerpání kapalin. block.conduit.description = Základní blok pro přepravu kapalin. Unáší kapaliny vpřed. Používá se s čerpadly, v některých vrtech a nebo ve spojení s jiným potrubím. block.pulse-conduit.description = Pokročilý blok přepravy kapalin. Přepravuje kapaliny rychleji a má větší kapacitu, než základní potrubí. -block.plated-conduit.description = Přenáší kapaliny stejně rychle jako pulzní potrubí, ale díky oplátování má větší výdržnost. Ze stran přijímá kapaliny pouze z dalších potrubí.\nV případě poškození má menší ztrátu kapaliny. +block.plated-conduit.description = Přenáší kapaliny stejně rychle jako pulzní potrubí, ale díky oplátování má větší výdržnost. Ze stran přijímá kapaliny pouze z dalších potrubí.\nNedochází zde k úniku kapalin. block.liquid-router.description = Přijímá kapaliny z jednoho směru a vypouští je rovnoměrně do zbylých tří směrů. Dokáže pojmout i určitý objem kapalin do vnitřího úložiště. Používá se při rozdělení kapaliny z jednoho zdroje směřující do různých cílů. block.liquid-tank.description = Ukládá velké množství kapalin. Používá se pro vyrovnávání zásob vody, když je přítok nestabilní nebo jako záložní chlazení pro životně důležité stavby. block.liquid-junction.description = Chová se jako most pro dvě křížící se potrubí. Používá se v situacích, kdy dvě rozdílná potrubí vedou rozdílný obsah přes jedno místo. @@ -1312,4 +1332,4 @@ block.cyclone.description = Velká protiletecká a protipozemní střílna. Pál block.spectre.description = Velká střílna s kanónem s dvěma hlavněmi. Střílí velké náboje, které pronikají brněním jak pozemních, tak vzdušných nepřátelských cílů. block.meltdown.description = Masivní laserový kanón. Nabije se a pak pálí nepřetržitý laserový paprsek na nepřátele v okolí. Vyžaduje ke své funkci chlazení. block.repair-point.description = Nepřetržitě léčí nejbližší poškozenou jednotku v poli své působnosti. -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. \ No newline at end of file +block.segment.description = Poškozuje a ničí příchozí střely. Laserové střely ale zacílit neumí. diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index b65afebcd3..093abdc4be 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -55,6 +55,7 @@ schematic.saved = Skabelon gemt. schematic.delete.confirm = Denne skabelon vil være væk for altid. schematic.rename = Omdøb skabelon schematic.info = {0}x{1}, {2} blokke +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = Invasionsbølger nedslået:[accent] {0} stat.enemiesDestroyed = Fjender nedlagt:[accent] {0} @@ -100,7 +101,6 @@ done = Færdig feature.unsupported = Din enhed understøtter ikke denne funktion mods.alphainfo = Vær opmærksom på at mods ikke er færdigudviklet.[scarlet]De kan indeholde mange fejl[].\n Hvis du oplever fejl can du reportére dem på Mindustry GitHub eller Discord. -mods.alpha = [accent](Alpha) mods = Mods mods.none = [LIGHT_GRAY]Ingen mods fundet! mods.guide = Modding guide @@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] to select+copy pausebuilding = [accent][[{0}][] to pause building resumebuilding = [scarlet][[{0}][] to resume building wave = [accent]Wave {0} +wave.cap = [accent]Wave {0}/{1} wave.waiting = [lightgray]Wave in {0} wave.waveInProgress = [lightgray]Wave in progress waiting = [lightgray]Waiting... waiting.players = Waiting for players... wave.enemies = [lightgray]{0} Enemies Remaining wave.enemy = [lightgray]{0} Enemy Remaining +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = Load Image saveimage = Save Image unknown = Unknown @@ -328,6 +331,7 @@ editor.generation = Generation: editor.ingame = Edit In-Game editor.publish.workshop = Publish On Workshop editor.newmap = New Map +editor.center = Center workshop = Workshop waves.title = Waves waves.remove = Remove @@ -416,6 +420,7 @@ filters.empty = [lightgray]No filters! Add one with the button below. filter.distort = Distort filter.noise = Noise filter.enemyspawn = Enemy Spawn Select +filter.spawnpath = Path To Spawn filter.corespawn = Core Select filter.median = Median filter.oremedian = Ore Median @@ -440,6 +445,7 @@ filter.option.amount = Amount filter.option.block = Block filter.option.floor = Floor filter.option.flooronto = Target Floor +filter.option.target = Target filter.option.wall = Wall filter.option.ore = Ore filter.option.floor2 = Secondary Floor @@ -471,15 +477,9 @@ requirement.wave = Reach Wave {0} in {1} requirement.core = Destroy Enemy Core in {0} requirement.research = Research {0} requirement.capture = Capture {0} -resume = Resume Zone:\n[lightgray]{0} bestwave = [lightgray]Best Wave: {0} -launch = < LAUNCH > launch.text = Launch -launch.title = Launch Successful -launch.next = [lightgray]next opportunity at wave {0} -launch.unable2 = [scarlet]Unable to LAUNCH.[] -launch.confirm = This will launch all resources in your core.\nYou will not be able to return to this base. -launch.skip.confirm = If you skip now, you will not be able to launch until later waves. +research.multiplayer = Only the host can research items. uncover = Uncover configure = Configure Loadout loadout = Loadout @@ -512,6 +512,7 @@ weather.rain.name = Rain weather.snow.name = Snow weather.sandstorm.name = Sandstorm weather.sporestorm.name = Sporestorm +weather.fog.name = Fog sectors.unexplored = [lightgray]Unexplored sectors.resources = Resources: @@ -521,6 +522,11 @@ sectors.resume = Resume sectors.launch = Launch sectors.select = Select sectors.nonelaunch = [lightgray]none (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = Ground Zero sector.craters.name = The Craters @@ -560,6 +566,10 @@ settings.clear.confirm = Are you sure you want to clear this data?\nWhat is done settings.clearall.confirm = [scarlet]WARNING![]\nThis will clear all data, including saves, maps, unlocks and keybinds.\nOnce you press 'ok' the game will wipe all data and automatically exit. settings.clearsaves.confirm = Are you sure you want to clear all your saves? settings.clearsaves = Clear Saves +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent]< Paused > clear = Clear banned = [scarlet]Banned @@ -570,12 +580,14 @@ info.title = Info error.title = [crimson]An error has occured error.crashtitle = An error has occured unit.nobuild = [scarlet]Unit can't build +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]??? + stat.input = Input stat.output = Output stat.booster = Booster stat.tiles = Required Tiles stat.affinities = Affinities -block.unknown = [lightgray]??? stat.powercapacity = Power Capacity stat.powershot = Power/Shot stat.damage = Damage @@ -594,6 +606,7 @@ stat.powerconnections = Max Connections stat.poweruse = Power Use stat.powerdamage = Power/Damage stat.itemcapacity = Item Capacity +stat.memorycapacity = Memory Capacity stat.basepowergeneration = Base Power Generation stat.productiontime = Production Time stat.repairtime = Block Full Repair Time @@ -613,6 +626,28 @@ stat.reload = Shots/Second stat.ammo = Ammo stat.shieldhealth = Shield Health stat.cooldowntime = Cooldown Time +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Better Drill Required bar.noresources = Missing Resources @@ -624,6 +659,7 @@ bar.powerbalance = Power: {0}/s bar.powerstored = Stored: {0}/{1} bar.poweramount = Power: {0} bar.poweroutput = Power Output: {0} +bar.powerlines = Connections: {0}/{1} bar.items = Items: {0} bar.capacity = Capacity: {0} bar.unitcap = {0} {1}/{2} @@ -635,6 +671,8 @@ bar.progress = Build Progress bar.input = Input bar.output = Output +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray] damage bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.incendiary = [stat]incendiary @@ -642,12 +680,15 @@ bullet.homing = [stat]homing bullet.shock = [stat]shock bullet.frag = [stat]frag bullet.knockback = [stat]{0}[lightgray] knockback +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat]freezing bullet.tarred = [stat]tarred bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier bullet.reload = [stat]{0}[lightgray]x fire rate unit.blocks = blocks +unit.blockssquared = blocks² unit.powersecond = power units/second unit.liquidsecond = liquid units/second unit.itemssecond = items/second @@ -670,7 +711,7 @@ category.power = Power category.liquids = Liquids category.items = Items category.crafting = Input/Output -category.shooting = Shooting +category.function = Function category.optional = Optional Enhancements setting.landscape.name = Lock Landscape setting.shadows.name = Shadows @@ -679,7 +720,6 @@ setting.linear.name = Linear Filtering setting.hints.name = Hints setting.flow.name = Display Resource Flow Rate setting.buildautopause.name = Auto-Pause Building -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = Animated Water setting.animatedshields.name = Animated Shields setting.antialias.name = Antialias[lightgray] (requires restart)[] @@ -691,7 +731,7 @@ setting.touchscreen.name = Touchscreen Controls setting.fpscap.name = Max FPS setting.fpscap.none = None setting.fpscap.text = {0} FPS -setting.uiscale.name = UI Scaling[lightgray] (require restart)[] +setting.uiscale.name = UI Scaling[lightgray] (requires restart)[] setting.swapdiagonal.name = Always Diagonal Placement setting.difficulty.training = Training setting.difficulty.easy = Easy @@ -713,7 +753,6 @@ setting.fullscreen.name = Fullscreen setting.borderlesswindow.name = Borderless Window[lightgray] (may require restart) setting.fps.name = Show FPS & Ping setting.smoothcamera.name = Smooth Camera -setting.blockselectkeys.name = Show Block Select Keys setting.vsync.name = VSync setting.pixelate.name = Pixelate setting.minimap.name = Show Minimap @@ -822,6 +861,7 @@ mode.custom = Custom Rules rules.infiniteresources = Infinite Resources rules.reactorexplosions = Reactor Explosions +rules.schematic = Schematics Allowed rules.wavetimer = Wave Timer rules.waves = Waves rules.attack = Attack Mode @@ -847,6 +887,7 @@ rules.title.unit = Units rules.title.experimental = Experimental rules.title.environment = Environment rules.lighting = Lighting +rules.enemyLights = Enemy Lights rules.fire = Fire rules.explosions = Block/Unit Explosion Damage rules.ambientlight = Ambient Light @@ -858,6 +899,7 @@ content.item.name = Items content.liquid.name = Liquids content.unit.name = Units content.block.name = Blocks + item.copper.name = Copper item.lead.name = Lead item.coal.name = Coal @@ -879,23 +921,6 @@ liquid.slag.name = Slag liquid.oil.name = Oil liquid.cryofluid.name = Cryofluid -item.explosiveness = [lightgray]Explosiveness: {0}% -item.flammability = [lightgray]Flammability: {0}% -item.radioactivity = [lightgray]Radioactivity: {0}% - -unit.health = [lightgray]Health: {0} -unit.speed = [lightgray]Speed: {0} -unit.weapon = [lightgray]Weapon: {0} -unit.itemcapacity = [lightgray]Item Capacity: {0} -unit.minespeed = [lightgray]Mining Speed: {0}% -unit.minepower = [lightgray]Mining Power: {0} -unit.ability = [lightgray]Ability: {0} -unit.buildspeed = [lightgray]Building Speed: {0}% - -liquid.heatcapacity = [lightgray]Heat Capacity: {0} -liquid.viscosity = [lightgray]Viscosity: {0} -liquid.temperature = [lightgray]Temperature: {0} - unit.dagger.name = Dagger unit.mace.name = Mace unit.fortress.name = Fortress @@ -936,6 +961,7 @@ block.cliff.name = Cliff block.sand-boulder.name = Sand Boulder block.grass.name = Grass block.slag.name = Slag +block.space.name = Space block.salt.name = Salt block.salt-wall.name = Salt Wall block.pebbles.name = Pebbles @@ -981,6 +1007,7 @@ block.darksand-water.name = Dark Sand Water block.char.name = Char block.dacite.name = Dacite block.dacite-wall.name = Dacite Wall +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = Ice Snow block.stone-wall.name = Stone Wall block.ice-wall.name = Ice Wall @@ -1075,6 +1102,7 @@ block.power-source.name = Power Infinite block.unloader.name = Unloader block.vault.name = Vault block.wave.name = Wave +block.tsunami.name = Tsunami block.swarmer.name = Swarmer block.salvo.name = Salvo block.ripple.name = Ripple @@ -1114,6 +1142,7 @@ block.arc.name = Arc block.rtg-generator.name = RTG Generator block.spectre.name = Spectre block.meltdown.name = Meltdown +block.foreshadow.name = Foreshadow block.container.name = Container block.launch-pad.name = Launch Pad block.launch-pad-large.name = Large Launch Pad @@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor block.logic-display.name = Logic Display block.large-logic-display.name = Large Logic Display block.memory-cell.name = Memory Cell +block.memory-bank.name = Memory Bank team.blue.name = blue team.crux.name = red @@ -1302,4 +1332,4 @@ block.cyclone.description = A large anti-air and anti-ground turret. Fires explo block.spectre.description = A massive dual-barreled cannon. Shoots large armor-piercing bullets at air and ground targets. block.meltdown.description = A massive laser cannon. Charges and fires a persistent laser beam at nearby enemies. Requires coolant to operate. block.repair-point.description = Continuously heals the closest damaged unit in its vicinity. -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. \ No newline at end of file +block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 5d02ed2f85..12fffccc4a 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -55,6 +55,7 @@ schematic.saved = Entwurf gespeichert. schematic.delete.confirm = Dieser Entwurf wird vollständig vernichtet. schematic.rename = Entwurf umbenennen schematic.info = {0}x{1}, {2} Blöcke +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = Wellen besiegt:[accent] {0} stat.enemiesDestroyed = Gegner zerstört:[accent] {0} @@ -100,7 +101,6 @@ done = Fertig feature.unsupported = Dein System unsterstützt dieses Feature nicht. mods.alphainfo = Vergiss nicht, dass Mods in der Alpha sind, und[scarlet] sehr fehlerhaft sein können[].\nMelde alle Probleme an den Mindustry GitHub oder Discord. -mods.alpha = [accent](Alpha) mods = Mods mods.none = [lightgray]Keine Mods gefunden! mods.guide = Modding-Anleitung @@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] zum Auswählen+Kopieren pausebuilding = [accent][[{0}][] um das Bauen zu pausieren resumebuilding = [scarlet][[{0}][] um das Bauen fortzusetzen wave = [accent]Welle {0} +wave.cap = [accent]Wave {0}/{1} wave.waiting = Welle in {0} wave.waveInProgress = [lightgray]Welle im Gange waiting = Warten... waiting.players = Warte auf Spieler... wave.enemies = [lightgray]{0} Gegner verbleiben wave.enemy = [lightgray]{0} Gegner verbleiben +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = Bild laden saveimage = Bild speichern unknown = Unbekannt @@ -328,6 +331,7 @@ editor.generation = Generator: editor.ingame = Im Spiel Bearbeiten editor.publish.workshop = Im Workshop veröffentlichen editor.newmap = Neue Karte +editor.center = Center workshop = Workshop waves.title = Wellen waves.remove = Entfernen @@ -416,6 +420,7 @@ filters.empty = [lightgray]Keine Filter! Füge einen mit dem unteren Knopf hinzu filter.distort = Verzerren filter.noise = Rauschen filter.enemyspawn = Enemy Spawn Select +filter.spawnpath = Path To Spawn filter.corespawn = Core Select filter.median = Median filter.oremedian = Erzmedian @@ -440,6 +445,7 @@ filter.option.amount = Amount filter.option.block = Block filter.option.floor = Boden filter.option.flooronto = Ziel Boden +filter.option.target = Target filter.option.wall = Wand filter.option.ore = Erz filter.option.floor2 = Sekundärer Boden @@ -471,15 +477,9 @@ requirement.wave = Erreiche Welle {0} in {1} requirement.core = Zerstöre den feindlichen Kern in {0} requirement.research = Research {0} requirement.capture = Capture {0} -resume = Zu Zone zurückkehren:\n[lightgray]{0} bestwave = [lightgray]Beste Welle: {0} -launch = Starten launch.text = Launch -launch.title = Start erfolgreich -launch.next = [lightgray]Nächste Möglichkeit bei Welle {0} -launch.unable2 = [scarlet]START nicht möglich.[] -launch.confirm = Dies wird alle Ressourcen in deinen Kern übertragen.\nDu kannst nicht wieder zu dieser Karte zurückkehren. -launch.skip.confirm = Wenn du die Wartezeit überspringst, kannst du den Kern bis zu einer späteren Welle nicht mehr starten. +research.multiplayer = Only the host can research items. uncover = Freischalten configure = Startitems festlegen loadout = Loadout @@ -512,6 +512,7 @@ weather.rain.name = Rain weather.snow.name = Snow weather.sandstorm.name = Sandstorm weather.sporestorm.name = Sporestorm +weather.fog.name = Fog sectors.unexplored = [lightgray]Unexplored sectors.resources = Resources: @@ -521,6 +522,11 @@ sectors.resume = Resume sectors.launch = Launch sectors.select = Select sectors.nonelaunch = [lightgray]none (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = Ground Zero sector.craters.name = The Craters @@ -560,6 +566,10 @@ settings.clear.confirm = Bist du sicher, dass du die Spieldaten zurücksetzen wi settings.clearall.confirm = [scarlet]WARNUNG![]\nDas wird jegliche Spieldaten zurücksetzen, inklusive Speicherstände, Karten, Freischaltungen und Tastenbelegungen.\n Sobald du 'OK' drückst, wird alles zurückgesetzt und das Spiel schließt sich automatisch. settings.clearsaves.confirm = Are you sure you want to clear all your saves? settings.clearsaves = Clear Saves +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent]< Pausiert > clear = Leeren banned = [scarlet]Verbannt @@ -570,12 +580,14 @@ info.title = Info error.title = [crimson]Ein Fehler ist aufgetreten error.crashtitle = Ein Fehler ist aufgetreten! unit.nobuild = [scarlet]Einheit kann nicht bauen! +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]??? + stat.input = Eingang stat.output = Ausgang stat.booster = Verstärkung stat.tiles = Required Tiles stat.affinities = Affinities -block.unknown = [lightgray]??? stat.powercapacity = Kapazität stat.powershot = Stromverbrauch/Schuss stat.damage = Schaden @@ -594,6 +606,7 @@ stat.powerconnections = Maximale Stromverbindungen stat.poweruse = Stromverbrauch stat.powerdamage = Stromverbrauch/Schadenspunkt stat.itemcapacity = Materialkapazität +stat.memorycapacity = Memory Capacity stat.basepowergeneration = Basis-Stromerzeugung stat.productiontime = Produktionszeit stat.repairtime = Zeit zur vollständigen Reparatur @@ -613,6 +626,28 @@ stat.reload = Schüsse/Sekunde stat.ammo = Munition stat.shieldhealth = Shield Health stat.cooldowntime = Cooldown Time +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Besserer Bohrer Benötigt bar.noresources = Missing Resources @@ -624,6 +659,7 @@ bar.powerbalance = Strom: {0}/s bar.powerstored = Gespeichert: {0}/{1} bar.poweramount = Strom: {0} bar.poweroutput = Stromgenerierung: {0} +bar.powerlines = Connections: {0}/{1} bar.items = Items: {0} bar.capacity = Kapazität: {0} bar.unitcap = {0} {1}/{2} @@ -635,6 +671,8 @@ bar.progress = Baufortschritt bar.input = Input bar.output = Output +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray] Schaden bullet.splashdamage = [stat]{0}[lightgray] Flächenschaden ~[stat] {1}[lightgray] Kacheln bullet.incendiary = [stat]entzündend @@ -642,12 +680,15 @@ bullet.homing = [stat]zielsuchend bullet.shock = [stat]schockend bullet.frag = [stat]explosiv bullet.knockback = [stat]{0}[lightgray] zurückstoßend +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat]frierend bullet.tarred = [stat]teerend bullet.multiplier = [stat]{0}[lightgray]x Munition Multiplikator bullet.reload = [stat]{0}[lightgray]x Feuerrate unit.blocks = Blöcke +unit.blockssquared = blocks² unit.powersecond = Stromeinheiten/Sekunde unit.liquidsecond = Flüssigkeitseinheiten/Sekunde unit.itemssecond = Materialeinheiten/Sekunde @@ -670,7 +711,7 @@ category.power = Strom category.liquids = Flüssigkeiten category.items = Materialien category.crafting = Erzeugung -category.shooting = Schießen +category.function = Function category.optional = Optionale Zusätze setting.landscape.name = Landschaft sperren setting.shadows.name = Schatten @@ -679,7 +720,6 @@ setting.linear.name = Lineare Filterung setting.hints.name = Tipps setting.flow.name = Display Resource Flow Rate[scarlet] (experimental) setting.buildautopause.name = Bauen automatisch pausieren -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = Animiertes Wasser setting.animatedshields.name = Animierte Schilde setting.antialias.name = Antialias[lightgray] (Neustart erforderlich)[] @@ -713,7 +753,6 @@ setting.fullscreen.name = Vollbild setting.borderlesswindow.name = Randloses Fenster [lightgray](Neustart vielleicht erforderlich) setting.fps.name = FPS zeigen setting.smoothcamera.name = Smooth Camera -setting.blockselectkeys.name = Block Shortcuts anzeigen setting.vsync.name = VSync setting.pixelate.name = Verpixeln [lightgray](Könnte die Leistung beeinträchtigen) setting.minimap.name = Zeige die Minimap @@ -822,6 +861,7 @@ mode.custom = Angepasste Regeln rules.infiniteresources = Unbegrenzte Ressourcen rules.reactorexplosions = Reaktor-Explosionen +rules.schematic = Schematics Allowed rules.wavetimer = Wellen-Timer rules.waves = Wellen rules.attack = Angriff-Modus @@ -847,6 +887,7 @@ rules.title.unit = Einheiten rules.title.experimental = Experimentell rules.title.environment = Environment rules.lighting = Lighting +rules.enemyLights = Enemy Lights rules.fire = Fire rules.explosions = Block/Unit Explosion Damage rules.ambientlight = Ambient Light @@ -858,6 +899,7 @@ content.item.name = Materialien content.liquid.name = Flüssigkeiten content.unit.name = Einheiten content.block.name = Blöcke + item.copper.name = Kupfer item.lead.name = Blei item.coal.name = Kohle @@ -879,23 +921,6 @@ liquid.slag.name = Schlacke liquid.oil.name = Öl liquid.cryofluid.name = Kryoflüssigkeit -item.explosiveness = [lightgray]Explosivität: {0} -item.flammability = [lightgray]Entflammbarkeit: {0} -item.radioactivity = [lightgray]Radioaktivität: {0} - -unit.health = [lightgray]Lebenskraft: {0} -unit.speed = [lightgray]Geschwindigkeit: {0} -unit.weapon = [lightgray]Weapon: {0} -unit.itemcapacity = [lightgray]Item Capacity: {0} -unit.minespeed = [lightgray]Mining Speed: {0}% -unit.minepower = [lightgray]Mining Power: {0} -unit.ability = [lightgray]Ability: {0} -unit.buildspeed = [lightgray]Building Speed: {0}% - -liquid.heatcapacity = [lightgray]Wärmekapazität: {0} -liquid.viscosity = [lightgray]Viskosität: {0} -liquid.temperature = [lightgray]Temperatur: {0} - unit.dagger.name = Dagger unit.mace.name = Mace unit.fortress.name = Fortress @@ -936,6 +961,7 @@ block.cliff.name = Cliff block.sand-boulder.name = Sandbrocken block.grass.name = Gras block.slag.name = Slag +block.space.name = Space block.salt.name = Salz block.salt-wall.name = Salt Wall block.pebbles.name = Geröll @@ -981,6 +1007,7 @@ block.darksand-water.name = Dunkles sandiges Wasser block.char.name = Holzkohle block.dacite.name = Dacite block.dacite-wall.name = Dacite Wall +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = Eisschnee block.stone-wall.name = Stone Wall block.ice-wall.name = Ice Wall @@ -1075,6 +1102,7 @@ block.power-source.name = Unendliche Stromquelle block.unloader.name = Entlader block.vault.name = Tresor block.wave.name = Welle +block.tsunami.name = Tsunami block.swarmer.name = Schwärmer block.salvo.name = Salve block.ripple.name = Zerstörer @@ -1114,6 +1142,7 @@ block.arc.name = Arcus block.rtg-generator.name = RTG-Generator block.spectre.name = Phantom block.meltdown.name = Meltdown +block.foreshadow.name = Foreshadow block.container.name = Container block.launch-pad.name = Launchpad block.launch-pad-large.name = Großes Launchpad @@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor block.logic-display.name = Logic Display block.large-logic-display.name = Large Logic Display block.memory-cell.name = Memory Cell +block.memory-bank.name = Memory Bank team.blue.name = Blau team.crux.name = Rot @@ -1302,4 +1332,4 @@ block.cyclone.description = Ein großer Schnellfeuer-Geschützturm. block.spectre.description = Ein großer Geschützturm, der zwei starke Schüsse gleichzeitig abfeuert. block.meltdown.description = Ein großer Geschützturm, der starke Strahlen mit großer Reichweite abfeuert. block.repair-point.description = Heilt durchgehend die nächste befreundete, beschädigte Einheit in der Umgebung. -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. \ No newline at end of file +block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index 976b74c885..80cb6264bf 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -20,9 +20,11 @@ gameover = Tu núcleo ha sido destruido. gameover.pvp = ¡El equipo[accent] {0}[] ha ganado! highscore = [accent]¡Nuevo récord de puntuación! copied = Copiado. + indev.popup = [accent]v6[] esta actualmente en [accent]alpha[].\n[lightgray]Esto significa que:[]\n[scarlet]- El modo de campaña no esta totalmente acabado[]\n-Falta contenido dentro del juego\n - Mucha de la [scarlet]AI de enemigos[] no funciona totalmente\n- Algunas unidades todavia no estan acabadas\n- Todo lo que ves es probable que sea cambiado o removido.\n\nReporta bugs o crasheos en [accent]Github[]. indev.notready = Esta parte del juego no esta lista todavia. + load.sound = Sonidos load.map = Mapas load.image = Imágenes @@ -55,6 +57,7 @@ schematic.saved = Esquemático guardado. schematic.delete.confirm = Esto esquemático será completamente borrado. schematic.rename = Renombrar esquemático schematic.info = {0}x{1}, {2} bloques +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = Oleadas Derrotadas:[accent] {0} stat.enemiesDestroyed = Enemigos Destruidos:[accent] {0} @@ -100,22 +103,21 @@ done = Hecho feature.unsupported = Tu dispositivo no soporta esta función. mods.alphainfo = Ten en cuenta que los mods estan en versión Alpha, y[scarlet] pueden tener varios problemas[].\nReporta cualquier error que encuentres en la página de GitHub de Mindustry o Discord. -mods.alpha = [accent](Alpha) mods = Mods mods.none = [lightgray]No se encontraron Mods! -mods.guide = Guia de Modding +mods.guide = Guía de Modding mods.report = Reportar Error mods.openfolder = Abrir carpeta de mods -mods.reload = Reload -mods.reloadexit = The game will now exit, to reload mods. +mods.reload = Recargar +mods.reloadexit = El juego se va a cerrar para recargar los mods. mod.display = [gray]Mod:[orange] {0} mod.enabled = [lightgray]Activado mod.disabled = [scarlet]Desactivado mod.disable = Desactivar -mod.content = Content: +mod.content = Contenido: mod.delete.error = Fallo al elminar el mod. Quizás el archivo esta en uso. mod.requiresversion = [scarlet]Requiere mínima versión del juego: [accent]{0} -mod.outdated = [scarlet]Not compatible with V6 (no minGameVersion: 105) +mod.outdated = [scarlet]No es compatible con la V6 (no minGameVersion: 105) mod.missingdependencies = [scarlet]Dependencias faltantes: {0} mod.erroredcontent = [scarlet]Errores de contenido mod.errors = Ocurrieron fallos al cargar el contenido. @@ -125,9 +127,11 @@ mod.enable = Activar mod.requiresrestart = El juego se cerrará para aplicar los mods. mod.reloadrequired = [scarlet]Se requiere actualizar mod.import = Importar mod -mod.import.file = Importar Archivo + +mod.import.file = Importar archivo mod.import.github = Importar Mod de Github -mod.jarwarn = [scarlet]Los mods que vienen en .jar son muy inseguros.[]\nTienes que estar seguro de que importaste este mod de una fuente segura! +mod.jarwarn = [scarlet]Los mods JAR pueden ser inseguros.[]\nAsegúrate de que los descargaste de una fuente segura! + mod.item.remove = Este objeto es parte del[accent] '{0}'[] mod. Para eliminarlo, desinstala ese mod. mod.remove.confirm = Este mod va a ser eliminado.\n¿Quieres continuar? mod.author = [lightgray]Autor:[] {0} @@ -139,8 +143,8 @@ mod.scripts.disable = Tu dispositivo no soporta los mods con scripts. Debes desh about.button = Acerca de name = Nombre: noname = Elige un[accent] nombre de jugador[] primero. -planetmap = Planet Map -launchcore = Launch Core +planetmap = Mapa del planeta +launchcore = Lanzar núcleo filename = Nombre del archivo: unlocked = ¡Nuevo Bloque Desbloqueado! completed = [accent]Completado @@ -278,18 +282,23 @@ quit.confirm.tutorial = ¿Estás seguro de que sabes qué estas haciendo?\nSe pu loading = [accent]Cargando... reloading = [accent]Recargando mods... saving = [accent]Guardando... + respawn = [accent][[{0}][] para respawnear en el nucleo + cancelbuilding = [accent][[{0}][] para limpiar el plan selectschematic = [accent][[{0}][] para seleccionar+copiar pausebuilding = [accent][[{0}][] para pausar la construcción resumebuilding = [scarlet][[{0}][] para resumir la construcción wave = [accent]Oleada {0} +wave.cap = [accent]Wave {0}/{1} wave.waiting = Oleada en {0} wave.waveInProgress = [lightgray]Oleada en progreso waiting = Esperando... waiting.players = Esperando jugadores... wave.enemies = [lightgray]{0} Enemigos Restantes wave.enemy = [lightgray]{0} Enemigo Restante +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = Cargar Imagen saveimage = Guardar Imagen unknown = Desconocido @@ -328,6 +337,7 @@ editor.generation = Generación: editor.ingame = Editar dentro del juego editor.publish.workshop = Publicar en el Steam Workshop editor.newmap = Nuevo Mapa +editor.center = Center workshop = Steam Workshop waves.title = Oleadas waves.remove = Borrar @@ -346,9 +356,11 @@ waves.invalid = Oleadas inválidaas en el portapapeles. waves.copied = Oleadas copiadas. waves.none = No hay enemigos definidos.\nNótese que las listas de oleadas vacías se sustituirán por la lista por defecto. -wavemode.counts = cuentas -wavemode.totals = totales -wavemode.health = vidas + +wavemode.counts = Cuentas +wavemode.totals = Totales +wavemode.health = Salud + editor.default = [lightgray] details = Detalles... @@ -415,8 +427,9 @@ toolmode.drawteams.description = Dibuja equipos en vez de bloques. filters.empty = [lightgray]¡No hay filtros! Añade uno con el botón de abajo. filter.distort = Distorsionar filter.noise = Ruido -filter.enemyspawn = Enemy Spawn Select -filter.corespawn = Core Select +filter.enemyspawn = Elegir punto de aparición enemigo +filter.spawnpath = Path To Spawn +filter.corespawn = Elegir Núcleo filter.median = Median filter.oremedian = Veta Median filter.blend = Mezcla @@ -436,10 +449,11 @@ filter.option.circle-scale = Escala del círculo filter.option.octaves = Octaves filter.option.falloff = Caída filter.option.angle = Ángulo -filter.option.amount = Amount +filter.option.amount = Cantidad filter.option.block = Bloque filter.option.floor = Suelo filter.option.flooronto = Suelo objetivo +filter.option.target = Target filter.option.wall = Muro filter.option.ore = Veta filter.option.floor2 = Piso secundario @@ -471,15 +485,9 @@ requirement.wave = Alcanzar la oleada {0} en {1} requirement.core = Destruir el núcleo enemigo en {0} requirement.research = Research {0} requirement.capture = Capture {0} -resume = Continuar Zona:\n[lightgray]{0} bestwave = [lightgray]Récord: {0} -launch = Lanzar launch.text = Launch -launch.title = Lanzamiento Exitoso -launch.next = [lightgray]próxima oportunidad en la oleada {0} -launch.unable2 = [scarlet]No se puede LANZAR.[] -launch.confirm = Esto lanzará todos los recursos al núcleo.\nNo podrás volver a esta base. -launch.skip.confirm = Si saltas la oleada ahora, no podrás lanzar recursos hasta unas oleadas después. +research.multiplayer = Only the host can research items. uncover = Descubrir configure = Configurar carga inicial loadout = Loadout @@ -513,26 +521,34 @@ weather.snow.name = Nieve weather.sandstorm.name = Tormenta de arena weather.sporestorm.name = Tormenta de esporas -sectors.unexplored = [lightgray]Unexplorado -sectors.resources = Materiales: -sectors.production = Produccion: -sectors.stored = Almacenado: -sectors.resume = Resumir -sectors.launch = Lanzar -sectors.select = Seleccionar -sectors.nonelaunch = [lightgray]nada (sun) +weather.fog.name = Niebla -sector.groundZero.name = Zona de Impacto -sector.craters.name = Los Crateres -sector.frozenForest.name = Bosque Frio +sectors.unexplored = [lightgray]No explorado +sectors.resources = Recursos: +sectors.production = Producción: +sectors.stored = Almacenado: +sectors.resume = Reanudar +sectors.launch = Lanzar +sectors.select = Elegir +sectors.nonelaunch = [lightgray]ninguno (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insuficientes recursos + +planet.serpulo.name = Serpulo +planet.sun.name = Sol + +sector.groundZero.name = Zona de impacto +sector.craters.name = Los Cráteres +sector.frozenForest.name = Bosque Congelado sector.ruinousShores.name = Costas Ruinosas -sector.stainedMountains.name = Montañas Manchadas -sector.desolateRift.name = Grieta Desolada -sector.nuclearComplex.name = Complejo de Producción Nuclear +sector.stainedMountains.name = Montañas manchadas +sector.desolateRift.name = Grieta desolada +sector.nuclearComplex.name = Complejo de producción nuclear sector.overgrowth.name = Crecimiento excesivo -sector.tarFields.name = Campos de Alquitrán -sector.saltFlats.name = Salinas -sector.fungalPass.name = Pasage de Hongos +sector.tarFields.name = Campos de alquitrán +sector.saltFlats.name = Llanuras de sal +sector.fungalPass.name = Paso de hongos + sector.groundZero.description = La ubicación óptima para empezar una vez más. Baja amenaza enemiga. Pocos recursos.\nReúna la mayor cantidad de plomo y cobre posible.\nSiga adelante. sector.frozenForest.description = Incluso aquí, más cerca de las montañas, las esporas se han extendido. Las gélidas temperaturas no pueden contenerlos para siempre.\n\nComienza la aventura hacia el poder. Construye generadores de combustión. Aprenda a usar reparadores. @@ -558,67 +574,98 @@ settings.graphics = Gráficos settings.cleardata = Limpiar Datos del Juego... settings.clear.confirm = ¿Estas seguro de querer limpiar estos datos?\n¡Esta acción no puede deshacerse! settings.clearall.confirm = [scarlet]ADVERTENCIA![]\nEsto va a eliminar todos tus datos, incluyendo guardados, mapas, desbloqueos y atajos de teclado.\nUna vez presiones 'ok', el juego va a borrrar todos tus datos y saldrá del juego automáticamente. -settings.clearsaves.confirm = Estas seguro que quieres borrar todos tus guardados? -settings.clearsaves = Borrar Guardados + +settings.clearsaves.confirm = Estas seguro de que quieres borrar tus partidas guardadas? +settings.clearsaves = Limpiar partidas guardadas +settings.clearresearch = Borrar descubrimientos +settings.clearresearch.confirm = Estas seguro? +settings.clearcampaignsaves = Borrar Guardados de campaña +settings.clearcampaignsaves.confirm = Estas seguro de que quieres borrar tus partidas guardadas en el modo campaña? + paused = [accent] < Pausado > clear = Limpiar banned = [scarlet]Baneado -unplaceable.sectorcaptured = [scarlet]Requires captured sector +unplaceable.sectorcaptured = [scarlet]Necesita que el sector esté capturado. yes = Sí no = No info.title = [accent]Información error.title = [crimson]Un error ha ocurrido. error.crashtitle = Un error ha ocurrido. -unit.nobuild = [scarlet]Unidad no puede construir -blocks.input = Entrada -blocks.output = Salida -blocks.booster = Potenciador -blocks.tiles = Tiles requeridos -blocks.affinities = Afinidades +unit.nobuild = [scarlet]La unidad no puede construir +lastaccessed = [lightgray]Anteriormente usado: {0} block.unknown = [lightgray]??? -blocks.powercapacity = Capacidad de Energía -blocks.powershot = Energía/Disparo -blocks.damage = Daño -blocks.targetsair = Apunta al Aire -blocks.targetsground = Apunta a Tierra -blocks.itemsmoved = Velocidad de movimiento -blocks.launchtime = Tiempo entre lanzamientos -blocks.shootrange = Rango de Disparo -blocks.size = Tamaño -blocks.displaysize = Tamaño de pantalla -blocks.liquidcapacity = Capacidad de Líquidos -blocks.powerrange = Rango de Energía -blocks.linkrange = Rango de link -blocks.instructions = Instructions -blocks.powerconnections = Conexiones maximas -blocks.poweruse = Consumo de Energía -blocks.powerdamage = Energía/Daño -blocks.itemcapacity = Capacidad de Objetos -blocks.basepowergeneration = Generación de energía base -blocks.productiontime = Tiempo de producción -blocks.repairtime = Tiempo para Reparar Bloque Completamente -blocks.speedincrease = Aumento de Velocidad -blocks.range = Rango -blocks.drilltier = Taladrables -blocks.drillspeed = Velocidad Base del Taladro -blocks.boosteffect = Efecto del Potenciador -blocks.maxunits = Máximo de Unidades Activas -blocks.health = Vida -blocks.buildtime = Tiempo de construcción -blocks.maxconsecutive = Max Consecutive -blocks.buildcost = Coste de construcción -blocks.inaccuracy = Imprecisión -blocks.shots = Disparos -blocks.reload = Recarga -blocks.ammo = Munición -blocks.shieldhealth = Vida del escudo -blocks.cooldowntime = Tiempo de Enfriamiento +stat.input = Entrada +stat.output = Salida +stat.booster = Potenciador +stat.tiles = Tiles requeridos +stat.affinities = Afinidades +stat.powercapacity = Capacidad de Energía +stat.powershot = Energía/Disparo +stat.damage = Daño +stat.targetsair = Apunta al Aire +stat.targetsground = Apunta a Tierra +stat.itemsmoved = Velocidad de movimiento +stat.launchtime = Tiempo entre lanzamientos +stat.shootrange = Rango de Disparo +stat.size = Tamaño +stat.displaysize = Tamaño mostrado +stat.liquidcapacity = Capacidad de Líquidos +stat.powerrange = Rango de Energía +stat.linkrange = Rango de conexión +stat.instructions = Instructions +stat.powerconnections = Conexiones maximas +stat.poweruse = Consumo de Energía +stat.powerdamage = Energía/Daño +stat.itemcapacity = Capacidad de Objetos +stat.memorycapacity = Memory Capacity +stat.basepowergeneration = Generación de energía base +stat.productiontime = Tiempo de producción +stat.repairtime = Tiempo para Reparar Bloque Completamente +stat.speedincrease = Aumento de Velocidad +stat.range = Rango +stat.drilltier = Taladrables +stat.drillspeed = Velocidad Base del Taladro +stat.boosteffect = Efecto del Potenciador +stat.maxunits = Máximo de Unidades Activas +stat.health = Vida +stat.buildtime = Tiempo de construcción +stat.maxconsecutive = Máximo consecutivo +stat.buildcost = Coste de construcción +stat.inaccuracy = Imprecisión +stat.shots = Disparos +stat.reload = Recarga +stat.ammo = Munición +stat.shieldhealth = Salud del escudo +stat.cooldowntime = Tiempo de enfriamiento +stat.explosiveness = Explosiveness +stat.basedeflectchance = Probabilidad de desvío base +stat.lightningchance = Probabilidad de rayo +stat.lightningdamage = Daño por rayo +stat.flammability = Inflamabilidad +stat.radioactivity = Radiactividad +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosidad +stat.temperature = Temperatura +stat.speed = Velocidad +stat.buildspeed = Velocidad de construcción +stat.minespeed = Velocidad de la mina +stat.minetier = Nivel de mina +stat.payloadcapacity = Capacidad de carga útil +stat.commandlimit = Límite de comando +stat.abilities = Habilidades + +skill.forcefield = Campo de fuerza +skill.repairfield = Campo de reparación +skill.statusfield = Campo de estado +skill.unitspawn = {0} Fábrica +skill.shieldregenfield = Campo de regeneración del escudo bar.drilltierreq = Se requiere un mejor taladro. bar.noresources = Recursos faltantes -bar.corereq = Base de núcleo requerida +bar.corereq = Se requiere de un núcleo base + bar.drillspeed = Velocidad del Taladro: {0}/s bar.pumpspeed = Velocidad de bombeado: {0}/s bar.efficiency = Eficiencia: {0}% @@ -626,6 +673,7 @@ bar.powerbalance = Energía: {0} bar.powerstored = Almacenados: {0}/{1} bar.poweramount = Energía: {0} bar.poweroutput = Salida de Energía: {0} +bar.powerlines = Connections: {0}/{1} bar.items = Objetos: {0} bar.capacity = Capacidad: {0} bar.unitcap = {0} {1}/{2} @@ -637,6 +685,8 @@ bar.progress = Progreso de construcción bar.input = Entrada bar.output = Salida +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray] daño bullet.splashdamage = [stat]{0}[lightgray] daño de área ~[stat] {1}[lightgray] casillas bullet.incendiary = [stat]Incendiaria @@ -644,12 +694,15 @@ bullet.homing = [stat]Rastreadora bullet.shock = [stat]Electrizante bullet.frag = [stat]Explosiva bullet.knockback = [stat]{0}[lightgray]Retroceso +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat]Congelación bullet.tarred = [stat]Relantizado bullet.multiplier = [stat]{0}[lightgray]x multiplicador de munición bullet.reload = [stat]{0}[lightgray]x recarga unit.blocks = bloques +unit.blockssquared = blocks² unit.powersecond = unidades de energía/segundo unit.liquidsecond = unidades de líquido/segundo unit.itemssecond = objetos/segundo @@ -662,7 +715,9 @@ unit.persecond = /seg unit.perminute = /min unit.timesspeed = x velocidad unit.percent = % + unit.shieldhealth = Vida del escudo + unit.items = objetos unit.thousands = k unit.millions = M @@ -672,20 +727,21 @@ category.power = Energía category.liquids = Líquidos category.items = Objetos category.crafting = Fabricación -category.shooting = Disparo +category.function = Function category.optional = Mejoras Opcionales setting.landscape.name = Bloquear modo paisaje setting.shadows.name = Sombras setting.blockreplace.name = Sugerir bloques al construir setting.linear.name = Filtrado Lineal setting.hints.name = Pistas + setting.flow.name = Mostrar tasa de flujo de recursos[scarlet] (experimental) setting.buildautopause.name = Auto-pausar construcción -setting.mapcenter.name = Autocentrar mapa al jugador + setting.animatedwater.name = Agua Animada setting.animatedshields.name = Escudos Animados -setting.antialias.name = Antialias[lightgray] (necesita reiniciar)[] -setting.playerindicators.name = Player Indicators +setting.antialias.name = Antialias[lightgray] (necesita un reinicio)[] +setting.playerindicators.name = Indicadores de jugadores setting.indicators.name = Indicadores de Aliados setting.autotarget.name = Auto apuntado setting.keyboard.name = Controles de Ratón+Teclado @@ -704,7 +760,7 @@ setting.difficulty.name = Dificultad: setting.screenshake.name = Movimiento de la Pantalla setting.effects.name = Mostrar Efectos setting.destroyedblocks.name = Mostrar bloques destruidos -setting.blockstatus.name = Display Block Status +setting.blockstatus.name = Mostrar estado de los bloques setting.conveyorpathfinding.name = Colocación del transportador en búsqueda de caminos setting.sensitivity.name = Sensibilidad del Control setting.saveinterval.name = Intervalo del Autoguardado @@ -715,7 +771,8 @@ setting.fullscreen.name = Pantalla Completa setting.borderlesswindow.name = Ventana sin Bordes[lightgray] (podría requerir un reinicio) setting.fps.name = Mostrar FPS setting.smoothcamera.name = Cámara suave -setting.blockselectkeys.name = Mostrar teclas de selección de bloque + + setting.vsync.name = Vsync (Limita los fps a los Hz de tu pantalla) setting.pixelate.name = Pixelar [lightgray](podría reducir el rendimiento) setting.minimap.name = Mostrar Minimapa @@ -745,27 +802,29 @@ keybinds.mobile = [scarlet]Los accesos del teclado aquí mostrados no estan disp category.general.name = General category.view.name = Visión category.multiplayer.name = Multijugador -category.blocks.name = Block Select +category.blocks.name = Seleccionar bloques command.attack = Atacar command.rally = Patrullar command.retreat = Retirarse -command.idle = Libre -placement.blockselectkeys = \n[lightgray]Key: [{0}, -keybind.respawn.name = Respawnear +command.idle = Esperar +placement.blockselectkeys = \n[lightgray]LLaves: [{0}, +keybind.respawn.name = Reaparecer keybind.control.name = Controlar unidad keybind.clear_building.name = Eliminar construcción keybind.press = Presiona una tecla... keybind.press.axis = Pulsa un eje o botón... keybind.screenshot.name = Captura de pantalla de Mapa keybind.toggle_power_lines.name = Activar láser de potencia -keybind.toggle_block_status.name = Toggle Block Statuses +keybind.toggle_block_status.name = Cambiar estado de los bloques keybind.move_x.name = Mover x keybind.move_y.name = Mover y keybind.mouse_move.name = Seguír al ratón + keybind.pan.name = Vista panorámica keybind.boost.name = Impulsar + keybind.schematic_select.name = Seleccionar región -keybind.schematic_menu.name = Menu de esquématicos +keybind.schematic_menu.name = Menu de esquemas keybind.schematic_flip_x.name = Girar esquemático desde X keybind.schematic_flip_y.name = Girar esquemático desde Y keybind.category_prev.name = Categoría anterior @@ -824,6 +883,7 @@ mode.custom = Normas personalizadas rules.infiniteresources = Recursos Infinitos rules.reactorexplosions = Reactor Explosions +rules.schematic = Schematics Allowed rules.wavetimer = Temportzador de Oleadas rules.waves = Oleadas rules.attack = Modo de Ataque @@ -841,25 +901,29 @@ rules.buildspeedmultiplier = Multiplicador de velocidad de construcción rules.deconstructrefundmultiplier = Multiplicador de Devolución de Desconstrucción rules.waitForWaveToEnd = Las oleadas esperan a los enemigos rules.dropzoneradius = Radio de zona de caída:[lightgray] (casillas) -rules.unitammo = Units Require Ammo +rules.unitammo = Las unidades necesitan munición rules.title.waves = Oleadas rules.title.resourcesbuilding = Recursos y Construcción rules.title.enemy = Enemigos rules.title.unit = Unidades rules.title.experimental = Experimental -rules.title.environment = El entorno + +rules.title.environment = Entorno rules.lighting = Iluminación +rules.enemyLights = Luces enemigas rules.fire = Fuego -rules.explosions = Block/Unit Explosion Damage +rules.explosions = Daño de explosiones de Bloques/Unidades rules.ambientlight = Iluminación ambiental rules.weather = Clima rules.weather.frequency = Frequencia: rules.weather.duration = Duracion: + content.item.name = Objetos content.liquid.name = Líquidos content.unit.name = Unidades content.block.name = Bloques + item.copper.name = Cobre item.lead.name = Plomo item.coal.name = Carbón @@ -881,22 +945,6 @@ liquid.slag.name = Fundido liquid.oil.name = Petróleo liquid.cryofluid.name = Criogénico -item.explosiveness = [lightgray]Explosividad: {0} -item.flammability = [lightgray]Inflamabilidad: {0} -item.radioactivity = [lightgray]Radioactividad: {0} - -unit.health = [lightgray]Vida: {0} -unit.speed = [lightgray]Velocidad: {0} -unit.weapon = [lightgray]Arma: {0} -unit.itemcapacity = [lightgray]Item Capacity: {0} -unit.minespeed = [lightgray]Velocidad de minería: {0}% -unit.minepower = [lightgray]Poder de minería: {0} -unit.ability = [lightgray]Abilidad: {0} -unit.buildspeed = [lightgray]Velocidad de construcción: {0}% - -liquid.heatcapacity = [lightgray]Capacidad Térmica: {0} -liquid.viscosity = [lightgray]Viscosidad: {0} -liquid.temperature = [lightgray]Temperatura: {0} unit.dagger.name = Daga unit.mace.name = Mazo @@ -927,18 +975,22 @@ unit.omura.name = Omura unit.alpha.name = Alpha unit.beta.name = Beta unit.gamma.name = Gamma -unit.scepter.name = Scepter +unit.scepter.name = Cetro unit.reign.name = Reign unit.vela.name = Vela -unit.corvus.name = Corvus +unit.corvus.name = Corvo block.resupply-point.name = Punto de reabastecimiento + block.parallax.name = Paralaje -block.cliff.name = Cliff +block.cliff.name = Acantilado + block.sand-boulder.name = Piedra de Arena block.grass.name = Hierba -block.slag.name = Slag +block.slag.name = Escoria +block.space.name = Space block.salt.name = Sal + block.salt-wall.name = Muro de sal block.pebbles.name = Guijarros block.tendrils.name = Zarcillos @@ -947,13 +999,16 @@ block.spore-pine.name = Pino de esporas block.spore-wall.name = Muro de esporas block.boulder.name = Roca block.snow-boulder.name = Roca de nieve + block.snow-pine.name = Pino de nieve block.shale.name = Pizarra block.shale-boulder.name = Piedra de Pizarra block.moss.name = Musgo block.shrubs.name = Arbustos block.spore-moss.name = Musgo de esporas + block.shale-wall.name = Muro de pizarra + block.scrap-wall.name = Muro de Chatarra block.scrap-wall-large.name = Muro de Chatarra grande block.scrap-wall-huge.name = Muro de Chatarra muy grande @@ -981,17 +1036,18 @@ block.craters.name = Cráteres block.sand-water.name = Agua con Arena block.darksand-water.name = Agua con Arena Oscura block.char.name = Carbonizado -block.dacite.name = Dacite -block.dacite-wall.name = Muro de dacita +block.dacite.name = Dacita +block.dacite-wall.name = Pared de Dacita +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = Hielo Nieve block.stone-wall.name = Pared de piedra -block.ice-wall.name = Muro de hielo -block.snow-wall.name = Muro de nieve -block.dune-wall.name = Muro de dunas +block.ice-wall.name = Pared de hielo +block.snow-wall.name = Pared de nieve +block.dune-wall.name = Pared de duna block.pine.name = Pino block.dirt.name = Tierra -block.dirt-wall.name = Muro de tierra -block.mud.name = Suciedad +block.dirt-wall.name = Pared de tierra +block.mud.name = Lodo block.white-tree-dead.name = Árbol Blanco Muerto block.white-tree.name = Árbol Blanco block.spore-cluster.name = Concentración de Esporas @@ -1077,6 +1133,7 @@ block.power-source.name = Energía Infinita block.unloader.name = Descargador block.vault.name = Bóveda block.wave.name = Ola +block.tsunami.name = Tsunami block.swarmer.name = Enjambre block.salvo.name = Salva block.ripple.name = Onda @@ -1116,18 +1173,22 @@ block.arc.name = Arco block.rtg-generator.name = Generador RTG block.spectre.name = Espectro block.meltdown.name = Fusión de Reactor +block.foreshadow.name = Foreshadow block.container.name = Contenedor block.launch-pad.name = Pad de Lanzamiento block.launch-pad-large.name = Pad de Lanzamiento Grande block.segment.name = Segmento block.command-center.name = Centro de comando -block.ground-factory.name = Fábrica de tierra -block.air-factory.name = Fábrica de aire + +block.ground-factory.name = Fábrica terrestre +block.air-factory.name = Fábrica aérea + block.naval-factory.name = Fábrica naval block.additive-reconstructor.name = Reconstructor aditivo block.multiplicative-reconstructor.name = Reconstructor multiplicativo block.exponential-reconstructor.name = Reconstructor exponencial block.tetrative-reconstructor.name = Reconstructor tetrativo + block.payload-conveyor.name = Transportador masivo block.payload-router.name = Enrutador de carga útil block.disassembler.name = Desensamblador @@ -1142,11 +1203,14 @@ block.logic-display.name = Pantalla lógica block.large-logic-display.name = Gran pantalla lógica block.memory-cell.name = Celda de memoria + team.blue.name = Azul team.crux.name = rojo team.sharded.name = naranja team.orange.name = Naranja + team.derelict.name = derelicto + team.green.name = Verde team.purple.name = Púrpura @@ -1304,5 +1368,4 @@ block.cyclone.description = Una torre grande anti-aérea y anti-terrestre. Dispa block.spectre.description = Un cañon masivo de dos barriles. Dispara balas perforantes a objetivos de aire y tierra. block.meltdown.description = Un cañon láser masivo. Carga y dispara un rayo láser constante a enemigos cercanos. Requiere enfriamiento para operar. block.repair-point.description = Repara la unidad dañada más cercana a su alrededor. -block.segment.description = Daña y destruye los proyectiles entrantes. Los proyectiles láser no están dirigidos. - +block.segment.description = Daña y destruye proyectiles enemigos. No apunta a láseres. \ No newline at end of file diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index 62b0002df6..46cf235d26 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -55,6 +55,7 @@ schematic.saved = Schematic saved. schematic.delete.confirm = This schematic will be utterly eradicated. schematic.rename = Rename Schematic schematic.info = {0}x{1}, {2} blocks +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = Lahingulaineid läbitud:[accent] {0} stat.enemiesDestroyed = Vaenlasi hävitatud:[accent] {0} @@ -100,7 +101,6 @@ done = Valmis feature.unsupported = Your device does not support this feature. mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord. -mods.alpha = [accent](Alpha) mods = Mods mods.none = [lightgray]No mods found! mods.guide = Modding Guide @@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] to select+copy pausebuilding = [accent][[{0}][] to pause building resumebuilding = [scarlet][[{0}][] to resume building wave = [accent]Lahingulaine {0} +wave.cap = [accent]Wave {0}/{1} wave.waiting = [lightgray]Järgmine laine\nalgab: {0} wave.waveInProgress = [lightgray]Toimub lahingulaine waiting = [lightgray]Ootan... waiting.players = Ootan mängijaid... wave.enemies = [lightgray]{0} vaenlast alles wave.enemy = [lightgray]{0} vaenlane alles +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = Lae pilt saveimage = Salvesta pilt unknown = @@ -328,6 +331,7 @@ editor.generation = Genereerimine: editor.ingame = Redigeeri mängus editor.publish.workshop = Avalda Workshop'is editor.newmap = Uus maailm +editor.center = Center workshop = Workshop waves.title = Lahingulained waves.remove = Eemalda @@ -416,6 +420,7 @@ filters.empty = [lightgray]Filtrid puuduvad! Lisa filtreid alloleva nupuga. filter.distort = Moonutamine filter.noise = Müra filter.enemyspawn = Enemy Spawn Select +filter.spawnpath = Path To Spawn filter.corespawn = Core Select filter.median = Mediaan filter.oremedian = Maakide mediaan @@ -440,6 +445,7 @@ filter.option.amount = Amount filter.option.block = Blokk filter.option.floor = Põrand filter.option.flooronto = Asendatav põrand +filter.option.target = Target filter.option.wall = Sein filter.option.ore = Maak filter.option.floor2 = Teine põrand @@ -471,15 +477,9 @@ requirement.wave = Reach Wave {0} in {1} requirement.core = Destroy Enemy Core in {0} requirement.research = Research {0} requirement.capture = Capture {0} -resume = Jätka piirkonnas:\n[lightgray]{0} bestwave = [lightgray]Parim lahingulaine: {0} -launch = < LENDUTÕUS > launch.text = Launch -launch.title = Lendutõus -launch.next = [lightgray]Järgmine võimalus on {0}. laine järel -launch.unable2 = [scarlet]Ei saa LENDU TÕUSTA.[] -launch.confirm = Lendu tõusmisel võetakse kaasa\nkõik tuumikus olevad ressursid.\n[accent]Sellesse baasi ei ole võimalik tagasi tulla. -launch.skip.confirm = Kui jätad praegu lendu tõusmata, siis saad seda teha alles hilisemate lahingulainete järel. +research.multiplayer = Only the host can research items. uncover = Ava configure = Muuda varustust loadout = Loadout @@ -512,6 +512,7 @@ weather.rain.name = Rain weather.snow.name = Snow weather.sandstorm.name = Sandstorm weather.sporestorm.name = Sporestorm +weather.fog.name = Fog sectors.unexplored = [lightgray]Unexplored sectors.resources = Resources: @@ -521,6 +522,11 @@ sectors.resume = Resume sectors.launch = Launch sectors.select = Select sectors.nonelaunch = [lightgray]none (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = Ground Zero sector.craters.name = The Craters @@ -560,6 +566,10 @@ settings.clear.confirm = Oled kindel, et soovid olemasolevad\nsätted kustutada? settings.clearall.confirm = [scarlet]HOIATUS![]\nKustutatakse kõik andmed, sealhulgas salvestised, maailmad, kampaania saavutused\nja juhtnuppude sätted.\n[accent]Vajutades nupule "OK", kustutatakse\nkõik andmed ja seejärel mäng sulgub.[] settings.clearsaves.confirm = Are you sure you want to clear all your saves? settings.clearsaves = Clear Saves +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent]< Paus > clear = Clear banned = [scarlet]Banned @@ -570,12 +580,14 @@ info.title = Info error.title = [crimson]Viga error.crashtitle = Viga unit.nobuild = [scarlet]Unit can't build +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]??? + stat.input = Sisend stat.output = Väljund stat.booster = Kiirendaja stat.tiles = Required Tiles stat.affinities = Affinities -block.unknown = [lightgray]??? stat.powercapacity = Energiamahtuvus stat.powershot = Energia ühikut/lasu kohta stat.damage = Hävituspunkte @@ -594,6 +606,7 @@ stat.powerconnections = Max Connections stat.poweruse = Energiatarve stat.powerdamage = Energiatarve hävituspunkti kohta stat.itemcapacity = Ressursside mahutavus +stat.memorycapacity = Memory Capacity stat.basepowergeneration = Energiatootlus stat.productiontime = Tootmisaeg stat.repairtime = Täieliku parandamise aeg @@ -613,6 +626,28 @@ stat.reload = Lasku/s stat.ammo = Laskemoon stat.shieldhealth = Shield Health stat.cooldowntime = Cooldown Time +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Nõuab paremat puuri bar.noresources = Missing Resources @@ -624,6 +659,7 @@ bar.powerbalance = Bilanss: {0}/s bar.powerstored = Puhver: {0}/{1} bar.poweramount = Laeng: {0} bar.poweroutput = Tootlus: {0} +bar.powerlines = Connections: {0}/{1} bar.items = Ressursse: {0} bar.capacity = Mahutavus: {0} bar.unitcap = {0} {1}/{2} @@ -635,6 +671,8 @@ bar.progress = Edenemine bar.input = Input bar.output = Output +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray] hävituspunkti bullet.splashdamage = [stat]{0}[lightgray] hävituspunkti ~[stat] {1}[lightgray] blokki bullet.incendiary = [stat]süttiv @@ -642,12 +680,15 @@ bullet.homing = [stat]isesihtiv bullet.shock = [stat]elektriseeriv bullet.frag = [stat]kildpomm bullet.knockback = [stat]{0}[lightgray]x tagasilöögi kordaja +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat]jäätav bullet.tarred = [stat]leekisüütav bullet.multiplier = [stat]{0}[lightgray]x laskemoona kordaja bullet.reload = [stat]{0}[lightgray]x tulistamise kiirus unit.blocks = blokki +unit.blockssquared = blocks² unit.powersecond = energiaühikut/s unit.liquidsecond = vedelikuühikut/s unit.itemssecond = ressursiühikut/s @@ -670,7 +711,7 @@ category.power = Energia category.liquids = Vedelikud category.items = Ressursid category.crafting = Sisend/Väljund -category.shooting = Tulistamine +category.function = Function category.optional = Valikulised täiustused setting.landscape.name = Lukusta horisontaalpaigutus setting.shadows.name = Varjud @@ -679,7 +720,6 @@ setting.linear.name = Lineaarne tekstuurivastendus setting.hints.name = Hints setting.flow.name = Display Resource Flow Rate[scarlet] (experimental) setting.buildautopause.name = Auto-Pause Building -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = Animeeritud vesi setting.animatedshields.name = Animeeritud kilbid setting.antialias.name = Sakitõrje[lightgray] (vajab mängu taaskäivitamist)[] @@ -713,7 +753,6 @@ setting.fullscreen.name = Täisekraan setting.borderlesswindow.name = Äärteta ekraan[lightgray] (võib vajada mängu taaskäivitamist) setting.fps.name = Näita kaadrite arvu sekundis setting.smoothcamera.name = Smooth Camera -setting.blockselectkeys.name = Show Block Select Keys setting.vsync.name = Vertikaalne sünkroonimine setting.pixelate.name = Piksel-efekt[lightgray] (lülitab animatsioonid välja) setting.minimap.name = Näita kaarti @@ -822,6 +861,7 @@ mode.custom = Reeglid rules.infiniteresources = Lõputult ressursse rules.reactorexplosions = Reactor Explosions +rules.schematic = Schematics Allowed rules.wavetimer = Kasuta taimerit rules.waves = Kasuta lahingulaineid rules.attack = Mänguviis "Rünnak" @@ -847,6 +887,7 @@ rules.title.unit = Väeüksused rules.title.experimental = Experimental rules.title.environment = Environment rules.lighting = Lighting +rules.enemyLights = Enemy Lights rules.fire = Fire rules.explosions = Block/Unit Explosion Damage rules.ambientlight = Ambient Light @@ -858,6 +899,7 @@ content.item.name = Ressursid content.liquid.name = Vedelikud content.unit.name = Väeüksused content.block.name = Konstruktsioonid + item.copper.name = Vask item.lead.name = Plii item.coal.name = Süsi @@ -879,23 +921,6 @@ liquid.slag.name = Räbu liquid.oil.name = Nafta liquid.cryofluid.name = Krüovedelik -item.explosiveness = [lightgray]Plahvatusohtlikkus: {0}% -item.flammability = [lightgray]Tuleohtlikkus: {0}% -item.radioactivity = [lightgray]Radioaktiivsus: {0}% - -unit.health = [lightgray]Elud: {0} -unit.speed = [lightgray]Kiirus: {0} -unit.weapon = [lightgray]Weapon: {0} -unit.itemcapacity = [lightgray]Item Capacity: {0} -unit.minespeed = [lightgray]Mining Speed: {0}% -unit.minepower = [lightgray]Mining Power: {0} -unit.ability = [lightgray]Ability: {0} -unit.buildspeed = [lightgray]Building Speed: {0}% - -liquid.heatcapacity = [lightgray]Soojusmahtuvus: {0} -liquid.viscosity = [lightgray]Viskoossus: {0} -liquid.temperature = [lightgray]Temperatuur: {0} - unit.dagger.name = Soldat unit.mace.name = Mace unit.fortress.name = Koljat @@ -936,6 +961,7 @@ block.cliff.name = Cliff block.sand-boulder.name = Liivakamakas block.grass.name = Rohi block.slag.name = Slag +block.space.name = Space block.salt.name = Sool block.salt-wall.name = Salt Wall block.pebbles.name = Kruus @@ -981,6 +1007,7 @@ block.darksand-water.name = Vesi tumedal liival block.char.name = Puusüsi block.dacite.name = Dacite block.dacite-wall.name = Dacite Wall +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = Jäine lumi block.stone-wall.name = Stone Wall block.ice-wall.name = Ice Wall @@ -1075,6 +1102,7 @@ block.power-source.name = Energiaallikas block.unloader.name = Mahalaadija block.vault.name = Suur hoidla block.wave.name = Prits +block.tsunami.name = Tsunami block.swarmer.name = Parvpildur block.salvo.name = Krempelpaugutaja block.ripple.name = Tähesadu @@ -1114,6 +1142,7 @@ block.arc.name = Elektrikahur block.rtg-generator.name = RT-generaator block.spectre.name = Kõmmutaja block.meltdown.name = Valguskiir +block.foreshadow.name = Foreshadow block.container.name = Hoidla block.launch-pad.name = Stardiplatvorm block.launch-pad-large.name = Suur stardiplatvorm @@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor block.logic-display.name = Logic Display block.large-logic-display.name = Large Logic Display block.memory-cell.name = Memory Cell +block.memory-bank.name = Memory Bank team.blue.name = sinine team.crux.name = punane @@ -1302,4 +1332,4 @@ block.cyclone.description = Suur lendavate ja maapealsete väeüksuste vastane k block.spectre.description = Massiivne kaheraudne kahur, mis tulistab soomuskatteid läbistavaid mürske nii lendavate kui ka maapealsete väeüksuste pihta. block.meltdown.description = Massiivne laserkahur, mis tekitab püsiva energiakiire. Vajab töötamiseks jahutusvedelikku. block.repair-point.description = Parandab kõige lähemal asuvat liitlaste väeüksust. -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. \ No newline at end of file +block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index 7afde97031..537d0b3133 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -55,6 +55,7 @@ schematic.saved = Eskema gordeta. schematic.delete.confirm = Eskema hau behin betiko suntsituko da. schematic.rename = Aldatu izena eskemari schematic.info = {0}x{1}, {2} bloke +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = Garaitutako boladak:[accent] {0} stat.enemiesDestroyed = Suntsitutako etsaiak:[accent] {0} @@ -100,7 +101,6 @@ done = Egina feature.unsupported = Zure gailuak ez du ezaugarri hau onartzen. mods.alphainfo = Kontuan izan mod-ak alfa egoeran daudela, eta [scarlet] akats ugari izan ditzakete[].\nEman arazoen berri Mindustry-ren GitHub or Discord zerbitzuetan. -mods.alpha = [accent](Alfa) mods = Mod-ak mods.none = [lightgray]Ez da mod-ik aurkitu! mods.guide = Mod-ak sortzeko gida @@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] hautatu+kopiatzeko pausebuilding = [accent][[{0}][] eraikiketa eteteko resumebuilding = [scarlet][[{0}][] eraikiketa berrekiteko wave = [accent]{0}. bolada +wave.cap = [accent]Wave {0}/{1} wave.waiting = [lightgray]Boladarako {0} wave.waveInProgress = [lightgray]Bolada abian waiting = [lightgray]Itxaroten... waiting.players = Jokalariei itxaroten... wave.enemies = [lightgray]{0} etsai daude wave.enemy = [lightgray]Etsai {0} dago +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = Kargatu irudia saveimage = Gorde irudia unknown = Ezezaguna @@ -328,6 +331,7 @@ editor.generation = Sorrarazi: editor.ingame = Editatu jolasean editor.publish.workshop = Argitaratu lantegian editor.newmap = Mapa berria +editor.center = Center workshop = Lantegia waves.title = Boladak waves.remove = Kendu @@ -416,6 +420,7 @@ filters.empty = [lightgray]Iragazkirik ez! Gehitu bat beheko botoiarekin. filter.distort = Distortsioa filter.noise = Orbana filter.enemyspawn = Enemy Spawn Select +filter.spawnpath = Path To Spawn filter.corespawn = Core Select filter.median = Mediana filter.oremedian = Mea mediana @@ -440,6 +445,7 @@ filter.option.amount = Amount filter.option.block = Blokea filter.option.floor = Zorua filter.option.flooronto = Zoru xedea +filter.option.target = Target filter.option.wall = Horma filter.option.ore = Mea filter.option.floor2 = Bigarren zorua @@ -471,15 +477,9 @@ requirement.wave = Iritsi {0} boladara {1} requirement.core = Suntsitu etsaiaren muina {0} requirement.research = Research {0} requirement.capture = Capture {0} -resume = Berrekin:\n[lightgray]{0} bestwave = [lightgray]Bolada onena: {0} -launch = < EGOTZI > launch.text = Launch -launch.title = Ongi egotzi da -launch.next = [lightgray]hurrengo aukera\n {0}. boladan -launch.unable2 = [scarlet]Ezin da EGOTZI.[] -launch.confirm = Honek zure muinean dauden baliabide guztiak egotziko ditu.\nEzin izango zara base honetara itzuli. -launch.skip.confirm = Orain ez eginez gero, geroagoko beste bolada batera itxaron beharko duzu. +research.multiplayer = Only the host can research items. uncover = Estalgabetu configure = Konfiguratu zuzkidura loadout = Loadout @@ -512,6 +512,7 @@ weather.rain.name = Rain weather.snow.name = Snow weather.sandstorm.name = Sandstorm weather.sporestorm.name = Sporestorm +weather.fog.name = Fog sectors.unexplored = [lightgray]Unexplored sectors.resources = Resources: @@ -521,6 +522,11 @@ sectors.resume = Resume sectors.launch = Launch sectors.select = Select sectors.nonelaunch = [lightgray]none (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = Ground Zero sector.craters.name = The Craters @@ -560,6 +566,10 @@ settings.clear.confirm = Ziur datu hauek garbitu nahi dituzula?\nEgindakoa ezin settings.clearall.confirm = [scarlet]ABISUA![]\nHonek datu guztiak garbituko ditu, gordetako partidak, mapak, desblokeatutakoak, eta teklen konfigurazioak barne.\nBehin 'Ados' sakatzen duzula jolasak datuk guztiak ezabatuko ditu eta automatikoki irten. settings.clearsaves.confirm = Are you sure you want to clear all your saves? settings.clearsaves = Clear Saves +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent]< Pausatuta > clear = Garbitu banned = [scarlet]Debekatuta @@ -570,12 +580,14 @@ info.title = Informazioa error.title = [crimson]Errore bat gertatu da error.crashtitle = Errore bat gertatu da unit.nobuild = [scarlet]Unit can't build +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]??? + stat.input = Sarrera stat.output = Irteera stat.booster = Indargarria stat.tiles = Required Tiles stat.affinities = Affinities -block.unknown = [lightgray]??? stat.powercapacity = Energia-edukiera stat.powershot = Energia/tiroko stat.damage = Kaltea @@ -594,6 +606,7 @@ stat.powerconnections = Gehieneko konexioak stat.poweruse = Energia-erabilera stat.powerdamage = Energia/Kaltea stat.itemcapacity = Elementu-edukiera +stat.memorycapacity = Memory Capacity stat.basepowergeneration = Oinarrizko energia sorrera stat.productiontime = Eraikitze denbora stat.repairtime = Blokearen konpontze denbora osoa @@ -613,6 +626,28 @@ stat.reload = Tiroak/segundoko stat.ammo = Munizioa stat.shieldhealth = Shield Health stat.cooldowntime = Cooldown Time +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Zulagailu hobea behar da bar.noresources = Missing Resources @@ -624,6 +659,7 @@ bar.powerbalance = Energia: {0}/s bar.powerstored = Bilduta: {0}/{1} bar.poweramount = Energia: {0} bar.poweroutput = Energia irteera: {0} +bar.powerlines = Connections: {0}/{1} bar.items = Elementuak: {0} bar.capacity = Edukiera: {0} bar.unitcap = {0} {1}/{2} @@ -635,6 +671,8 @@ bar.progress = Eraikitze egoera bar.input = Input bar.output = Output +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray] kalte bullet.splashdamage = [stat]{0}[lightgray] ingurune-kaltea ~[stat] {1}[lightgray] lauza bullet.incendiary = [stat]su-eragilea @@ -642,12 +680,15 @@ bullet.homing = [stat]gidatua bullet.shock = [stat]danbatekoa bullet.frag = [stat]fragmentazioa bullet.knockback = [stat]{0}[lightgray] kontusioa +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat]hozkirri bullet.tarred = [stat]mundrunduta bullet.multiplier = [stat]{0}[lightgray]x munizio-biderkatzailea bullet.reload = [stat]{0}[lightgray]x tiro tasa unit.blocks = bloke +unit.blockssquared = blocks² unit.powersecond = energia unitate/segundoko unit.liquidsecond = likido unitate/segundoko unit.itemssecond = elementu/segundoko @@ -670,7 +711,7 @@ category.power = Energia category.liquids = Likidoak category.items = Baliabideak category.crafting = Sarrera/Irteera -category.shooting = Tirokatzea +category.function = Function category.optional = Aukerako hobekuntzak setting.landscape.name = Blokeatu horizontalean setting.shadows.name = Itzalak @@ -679,7 +720,6 @@ setting.linear.name = Iragazte lineala setting.hints.name = Pistak setting.flow.name = Display Resource Flow Rate[scarlet] (experimental) setting.buildautopause.name = Auto-Pause Building -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = Animatutako ura setting.animatedshields.name = Animatutako ezkutuak setting.antialias.name = Antialias[lightgray] (berrabiarazi behar da)[] @@ -713,7 +753,6 @@ setting.fullscreen.name = Pantaila osoa setting.borderlesswindow.name = Ertzik gabeko leihoa[lightgray] (berrabiaraztea behar lezake) setting.fps.name = Erakutsi FPS setting.smoothcamera.name = Smooth Camera -setting.blockselectkeys.name = Show Block Select Keys setting.vsync.name = VSync setting.pixelate.name = Pixelatu[lightgray] (animazioak desgaitzen ditu) setting.minimap.name = Erakutsi mapatxoa @@ -822,6 +861,7 @@ mode.custom = Arau pertsonalizatuak rules.infiniteresources = Baliabide amaigabeak rules.reactorexplosions = Reactor Explosions +rules.schematic = Schematics Allowed rules.wavetimer = Boladen denboragailua rules.waves = Boladak rules.attack = Eraso modua @@ -847,6 +887,7 @@ rules.title.unit = Unitateak rules.title.experimental = Experimental rules.title.environment = Environment rules.lighting = Lighting +rules.enemyLights = Enemy Lights rules.fire = Fire rules.explosions = Block/Unit Explosion Damage rules.ambientlight = Ambient Light @@ -858,6 +899,7 @@ content.item.name = Solidoak content.liquid.name = Likidoak content.unit.name = Unitateak content.block.name = Blokeak + item.copper.name = Kobrea item.lead.name = Beruna item.coal.name = Ikatza @@ -879,23 +921,6 @@ liquid.slag.name = Zepa liquid.oil.name = Olioa liquid.cryofluid.name = Krio-isurkaria -item.explosiveness = [lightgray]Lehergarritasuna: {0}% -item.flammability = [lightgray]Sukoitasuna: {0}% -item.radioactivity = [lightgray]Erradioaktibitatea: {0}% - -unit.health = [lightgray]Osasuna: {0} -unit.speed = [lightgray]Abiadura: {0} -unit.weapon = [lightgray]Weapon: {0} -unit.itemcapacity = [lightgray]Item Capacity: {0} -unit.minespeed = [lightgray]Mining Speed: {0}% -unit.minepower = [lightgray]Mining Power: {0} -unit.ability = [lightgray]Ability: {0} -unit.buildspeed = [lightgray]Building Speed: {0}% - -liquid.heatcapacity = [lightgray]Bero edukiera: {0} -liquid.viscosity = [lightgray]Likatasuna: {0} -liquid.temperature = [lightgray]Tenperatura: {0} - unit.dagger.name = Daga unit.mace.name = Mace unit.fortress.name = Gotorleku @@ -936,6 +961,7 @@ block.cliff.name = Cliff block.sand-boulder.name = Hondar harkaitza block.grass.name = Belarra block.slag.name = Slag +block.space.name = Space block.salt.name = Gatza block.salt-wall.name = Salt Wall block.pebbles.name = Harribilak @@ -981,6 +1007,7 @@ block.darksand-water.name = Hondar ilun ura block.char.name = Kokea block.dacite.name = Dacite block.dacite-wall.name = Dacite Wall +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = Izotz elurra block.stone-wall.name = Stone Wall block.ice-wall.name = Ice Wall @@ -1075,6 +1102,7 @@ block.power-source.name = Energia amaigabea block.unloader.name = Deskargagailua block.vault.name = Kripta block.wave.name = Olatu +block.tsunami.name = Tsunami block.swarmer.name = Erlauntz block.salvo.name = Buhunba block.ripple.name = Marmarra @@ -1114,6 +1142,7 @@ block.arc.name = Arku block.rtg-generator.name = RTG sorgailua block.spectre.name = Espektro block.meltdown.name = Nukleofusio +block.foreshadow.name = Foreshadow block.container.name = Edukiontzia block.launch-pad.name = Egozketa-plataforma block.launch-pad-large.name = Egozketa-plataforma handia @@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor block.logic-display.name = Logic Display block.large-logic-display.name = Large Logic Display block.memory-cell.name = Memory Cell +block.memory-bank.name = Memory Bank team.blue.name = urdina team.crux.name = gorria @@ -1302,4 +1332,4 @@ block.cyclone.description = Aire zein lurreko defentsarako dorre handia. Torpedo block.spectre.description = Kanoi bikoitz erraldoia. Blindajea zulatu dezaketen bala handiak tirokatzen ditu aireko zein lurreko xedeei. block.meltdown.description = Laser kanoi erraldoia. Etengabeko laser izpi bat kargatu eta jauritzen die inguruko etsaiei. Hozgarria behar du jarduteko. block.repair-point.description = Etengabe konpontzen du inguruko kaltetutako unitate hurbilena. -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. \ No newline at end of file +block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index 30a231333c..ee7f6543b3 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -55,6 +55,7 @@ schematic.saved = Kaavio tallennettu. schematic.delete.confirm = Tämä kaavio poistetaan. schematic.rename = Nimeä kaavio uudelleen schematic.info = {0}x{1}, {2} palikkaa +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = Tasoja voitettu:[accent] {0} stat.enemiesDestroyed = Vihollisia tuhottu:[accent] {0} @@ -100,7 +101,6 @@ done = Valmis feature.unsupported = Laitteesi ei tue tätä toimintoa. mods.alphainfo = Pidä mielessä että modit ovat alpha-tilassa, ja[scarlet] ne voivat olla virheellisiä[].\nRaportoi kaikki virheet Mindustry GitHub-sivuille tai Discordiin. -mods.alpha = [accent](Alpha) mods = Modit mods.none = [lightgray]Modeja ei löytynyt! mods.guide = Modaamisopas @@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] to select+copy pausebuilding = [accent][[{0}][] to pause building resumebuilding = [scarlet][[{0}][] to resume building wave = [accent]Taso {0} +wave.cap = [accent]Wave {0}/{1} wave.waiting = [lightgray]Seuraava taso {0} wave.waveInProgress = [lightgray]Wave in progress waiting = [lightgray]Odotetaan... waiting.players = Odotetaan pelaajia... wave.enemies = [lightgray]{0} vihollista jäljellä wave.enemy = [lightgray]{0} vihollinen jäljellä +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = Lataa kuva saveimage = Tallenna kuva unknown = Tuntematon @@ -328,6 +331,7 @@ editor.generation = Generaatio: editor.ingame = Muokka pelin sisällä editor.publish.workshop = Julkaise Workshoppiin editor.newmap = Uusi kartta +editor.center = Center workshop = Työpaja waves.title = Tasot waves.remove = Poista @@ -416,6 +420,7 @@ filters.empty = [lightgray]No filters! Add one with the button below. filter.distort = Vääristää filter.noise = Melu filter.enemyspawn = Enemy Spawn Select +filter.spawnpath = Path To Spawn filter.corespawn = Valitse Ydin filter.median = Mediaani filter.oremedian = Malmin mediaani @@ -440,6 +445,7 @@ filter.option.amount = Määrä filter.option.block = Estää filter.option.floor = Lattia filter.option.flooronto = Target Floor +filter.option.target = Target filter.option.wall = Seinä filter.option.ore = Malmi filter.option.floor2 = Secondary Floor @@ -471,15 +477,9 @@ requirement.wave = Pääse Tasolle {0} kartassa {1} requirement.core = Tuhoa vihollisen ydin kartassa {0} requirement.research = Research {0} requirement.capture = Capture {0} -resume = Resume Zone:\n[lightgray]{0} bestwave = [lightgray]Paras taso: {0} -launch = < LAUKAISE > launch.text = Launch -launch.title = Onnistunut laukaisu -launch.next = [lightgray]seuraava mahdollisuus tasolla {0} -launch.unable2 = [scarlet]Unable to LAUNCH.[] -launch.confirm = Tämä laukaisee kaikki resurssit ytimestäsi.\nEt voi enää palata takaisin. -launch.skip.confirm = Jos ohitat nyt, voit laukaista vasta myöhemmillä tasoilla. +research.multiplayer = Only the host can research items. uncover = Paljasta configure = Configure Loadout loadout = Loadout @@ -512,6 +512,7 @@ weather.rain.name = Rain weather.snow.name = Snow weather.sandstorm.name = Sandstorm weather.sporestorm.name = Sporestorm +weather.fog.name = Fog sectors.unexplored = [lightgray]Unexplored sectors.resources = Resources: @@ -521,6 +522,11 @@ sectors.resume = Resume sectors.launch = Launch sectors.select = Select sectors.nonelaunch = [lightgray]none (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = Ground Zero sector.craters.name = The Craters @@ -560,6 +566,10 @@ settings.clear.confirm = Oletko varma että haluat tyhjentää pelin datan?\nMit settings.clearall.confirm = [scarlet]WARNING![]\nTämä poistaa kaiken datan, mukaanlukien kesken olevat pelit, kartat, avatut asiat ja kontrolliasetukset.\nKun painat 'ok' kaikki datasi poistetaan ja peli suljetaan. settings.clearsaves.confirm = Are you sure you want to clear all your saves? settings.clearsaves = Clear Saves +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent]< Pysäytetty > clear = Tyhjä banned = [scarlet]Kielletty @@ -570,12 +580,14 @@ info.title = Informaatio error.title = [crimson]An error has occured error.crashtitle = An error has occured unit.nobuild = [scarlet]Unit can't build +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]??? + stat.input = Sisääntulo stat.output = Ulostulo stat.booster = Tehostaja stat.tiles = Required Tiles stat.affinities = Affinities -block.unknown = [lightgray]??? stat.powercapacity = Energiakapasiteetti stat.powershot = Energiaa/Ammus stat.damage = Vahinko @@ -594,6 +606,7 @@ stat.powerconnections = Maksimimäärä yhdistyksiä stat.poweruse = Energian käyttö stat.powerdamage = Energia/Vahinko stat.itemcapacity = Tavarakapasiteetti +stat.memorycapacity = Memory Capacity stat.basepowergeneration = Perus energiantuotto stat.productiontime = Tuotantoaika stat.repairtime = Kokonaisen palikan korjausaika @@ -613,6 +626,28 @@ stat.reload = Ammusta/sekunnissa stat.ammo = Ammus stat.shieldhealth = Shield Health stat.cooldowntime = Cooldown Time +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Parempi pora vaadittu bar.noresources = Missing Resources @@ -624,6 +659,7 @@ bar.powerbalance = Energia: {0}/s bar.powerstored = Säilöttynä: {0}/{1} bar.poweramount = Energia: {0} bar.poweroutput = Energiantuotto: {0} +bar.powerlines = Connections: {0}/{1} bar.items = Tavaroita: {0} bar.capacity = Kapasiteetti: {0} bar.unitcap = {0} {1}/{2} @@ -635,6 +671,8 @@ bar.progress = Rakennuksen edistys bar.input = Sisääntulo bar.output = Ulostulo +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray] Vahinko bullet.splashdamage = [stat]{0}[lightgray] Aluevahinko ~[stat] {1}[lightgray] palikkaa bullet.incendiary = [stat]sytyttävä @@ -642,12 +680,15 @@ bullet.homing = [stat]itseohjautuva bullet.shock = [stat]shokki bullet.frag = [stat]sirpaloituva bullet.knockback = [stat]{0}[lightgray] knockback +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat]jäädyttävä bullet.tarred = [stat]tervattu bullet.multiplier = [stat]{0}[lightgray]x ammusten kerroin bullet.reload = [stat]{0}[lightgray]x ampumisnopeus unit.blocks = palikat +unit.blockssquared = blocks² unit.powersecond = energiayksikköä/sekunti unit.liquidsecond = nesteyksikköä/sekunti unit.itemssecond = esinettä/sekunti @@ -670,7 +711,7 @@ category.power = Energia category.liquids = Neste category.items = Tavarat category.crafting = Ulos/Sisääntulo -category.shooting = Ammunta +category.function = Function category.optional = Mahdolliset parannukset setting.landscape.name = Lukitse tasavaakaan setting.shadows.name = Varjot @@ -679,7 +720,6 @@ setting.linear.name = Lineaarinen suodatus setting.hints.name = Vihjeet setting.flow.name = Display Resource Flow Rate[scarlet] (experimental) setting.buildautopause.name = Automaattisest Pysäytä Rakentaessa -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = Animoitu vesi setting.animatedshields.name = Animoidut kilvet setting.antialias.name = Antialiaasi[lightgray] (vaatii uudelleenkäynnistyksen)[] @@ -713,7 +753,6 @@ setting.fullscreen.name = Fullscreen setting.borderlesswindow.name = Borderless Window[lightgray] (vaatii uudelleenkäynnistyksen) setting.fps.name = Näytä FPS setting.smoothcamera.name = Smooth Camera -setting.blockselectkeys.name = Näytä palikan valintaohjaimet setting.vsync.name = VSync setting.pixelate.name = Pixeloi[lightgray] (poistaa animaation käytöstä) setting.minimap.name = Näytä pienoiskartta @@ -822,6 +861,7 @@ mode.custom = Custom Rules rules.infiniteresources = Ikuiset resurssit rules.reactorexplosions = Reaktorien räjähtäminen +rules.schematic = Schematics Allowed rules.wavetimer = Tasojen aikaraja rules.waves = Tasot rules.attack = Hyökkäystila @@ -847,6 +887,7 @@ rules.title.unit = Units rules.title.experimental = Experimental rules.title.environment = Environment rules.lighting = Lighting +rules.enemyLights = Enemy Lights rules.fire = Fire rules.explosions = Block/Unit Explosion Damage rules.ambientlight = Ambient Light @@ -858,6 +899,7 @@ content.item.name = Tavarat content.liquid.name = Nesteet content.unit.name = Yksiköt content.block.name = Palikat + item.copper.name = Kupari item.lead.name = Lyijy item.coal.name = Hiili @@ -879,23 +921,6 @@ liquid.slag.name = Kuona liquid.oil.name = Öljy liquid.cryofluid.name = Kryoneste -item.explosiveness = [lightgray]Räjädysmäisyys: {0}% -item.flammability = [lightgray]Syttyvyys: {0}% -item.radioactivity = [lightgray]Radioaktiivisuus: {0}% - -unit.health = [lightgray]Elämäpisteet: {0} -unit.speed = [lightgray]Nopeus: {0} -unit.weapon = [lightgray]Ammuksia: {0} -unit.itemcapacity = [lightgray]Esine kapasiteetti: {0} -unit.minespeed = [lightgray]Mining Speed: {0}% -unit.minepower = [lightgray]Mining Power: {0} -unit.ability = [lightgray]Ability: {0} -unit.buildspeed = [lightgray]Building Speed: {0}% - -liquid.heatcapacity = [lightgray]Lämpökapasiteetti: {0} -liquid.viscosity = [lightgray]Tahmeus: {0} -liquid.temperature = [lightgray]Lämpö: {0} - unit.dagger.name = Tikari unit.mace.name = Mace unit.fortress.name = Linnoitus @@ -936,6 +961,7 @@ block.cliff.name = Vuoren block.sand-boulder.name = Hiekkalohkare block.grass.name = Ruoho block.slag.name = Kuono +block.space.name = Space block.salt.name = Suolapitoisuus block.salt-wall.name = Salt Wall block.pebbles.name = Pikkukivi @@ -981,6 +1007,7 @@ block.darksand-water.name = Dark Sand Water block.char.name = Char block.dacite.name = Dacite block.dacite-wall.name = Dacite Wall +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = Ice Snow block.stone-wall.name = Stone Wall block.ice-wall.name = Ice Wall @@ -1075,6 +1102,7 @@ block.power-source.name = Power Infinite block.unloader.name = Unloader block.vault.name = Vault block.wave.name = Wave +block.tsunami.name = Tsunami block.swarmer.name = Swarmer block.salvo.name = Salvo block.ripple.name = Ripple @@ -1114,6 +1142,7 @@ block.arc.name = Kaari block.rtg-generator.name = RTG Generator block.spectre.name = Haamu block.meltdown.name = Sulamispiste +block.foreshadow.name = Foreshadow block.container.name = Container block.launch-pad.name = Launch Pad block.launch-pad-large.name = Large Launch Pad @@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor block.logic-display.name = Logic Display block.large-logic-display.name = Large Logic Display block.memory-cell.name = Memory Cell +block.memory-bank.name = Memory Bank team.blue.name = sininen team.crux.name = punainen @@ -1302,4 +1332,4 @@ block.cyclone.description = A large anti-air and anti-ground turret. Fires explo block.spectre.description = A massive dual-barreled cannon. Shoots large armor-piercing bullets at air and ground targets. block.meltdown.description = A massive laser cannon. Charges and fires a persistent laser beam at nearby enemies. Requires coolant to operate. block.repair-point.description = Continuously heals the closest damaged unit in its vicinity. -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. \ No newline at end of file +block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index 0fa6608526..9e796de8bf 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -55,6 +55,7 @@ schematic.saved = Na-i-adya na ang schematic. schematic.delete.confirm = Ang schematic na'to ay tuluyang mawawala. schematic.rename = Palitan Ang Pangalan ng Schematic schematic.info = {0}x{1}, {2} blocks +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = Wave na Nalagpasan:[accent] {0} stat.enemiesDestroyed = Tinalong Kalaban:[accent] {0} @@ -100,7 +101,6 @@ done = Tapos Na feature.unsupported = Hindi suportado ng 'yong device ang feature na'to. mods.alphainfo = Tandaan mo na ang mga mod ay nasa 'alpha', at[scarlet] maaaring may depekto pa ang mga 'to[].\nI-ulat ang kahit anong depektong matutuklasan mo sa Mindustry GitHub o Discord. -mods.alpha = [accent](Alpha) mods = Mga Mod mods.none = [lightgray]Walang mga mod na nahanap! mods.guide = Gabay para sa Paggawa ng Mod @@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] to select+copy pausebuilding = [accent][[{0}][] to pause building resumebuilding = [scarlet][[{0}][] to resume building wave = [accent]Wave {0} +wave.cap = [accent]Wave {0}/{1} wave.waiting = [lightgray]Wave in {0} wave.waveInProgress = [lightgray]Wave in progress waiting = [lightgray]Waiting... waiting.players = Waiting for players... wave.enemies = [lightgray]{0} Enemies Remaining wave.enemy = [lightgray]{0} Enemy Remaining +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = Load Image saveimage = Save Image unknown = Unknown @@ -328,6 +331,7 @@ editor.generation = Generation: editor.ingame = Edit In-Game editor.publish.workshop = Publish On Workshop editor.newmap = New Map +editor.center = Center workshop = Workshop waves.title = Waves waves.remove = Remove @@ -416,6 +420,7 @@ filters.empty = [lightgray]No filters! Add one with the button below. filter.distort = Distort filter.noise = Noise filter.enemyspawn = Enemy Spawn Select +filter.spawnpath = Path To Spawn filter.corespawn = Core Select filter.median = Median filter.oremedian = Ore Median @@ -440,6 +445,7 @@ filter.option.amount = Amount filter.option.block = Block filter.option.floor = Floor filter.option.flooronto = Target Floor +filter.option.target = Target filter.option.wall = Wall filter.option.ore = Ore filter.option.floor2 = Secondary Floor @@ -471,15 +477,9 @@ requirement.wave = Reach Wave {0} in {1} requirement.core = Destroy Enemy Core in {0} requirement.research = Research {0} requirement.capture = Capture {0} -resume = Resume Zone:\n[lightgray]{0} bestwave = [lightgray]Best Wave: {0} -launch = < LAUNCH > launch.text = Launch -launch.title = Launch Successful -launch.next = [lightgray]next opportunity at wave {0} -launch.unable2 = [scarlet]Unable to LAUNCH.[] -launch.confirm = This will launch all resources in your core.\nYou will not be able to return to this base. -launch.skip.confirm = If you skip now, you will not be able to launch until later waves. +research.multiplayer = Only the host can research items. uncover = Uncover configure = Configure Loadout loadout = Loadout @@ -512,6 +512,7 @@ weather.rain.name = Rain weather.snow.name = Snow weather.sandstorm.name = Sandstorm weather.sporestorm.name = Sporestorm +weather.fog.name = Fog sectors.unexplored = [lightgray]Unexplored sectors.resources = Resources: @@ -521,6 +522,11 @@ sectors.resume = Resume sectors.launch = Launch sectors.select = Select sectors.nonelaunch = [lightgray]none (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = Ground Zero sector.craters.name = The Craters @@ -560,6 +566,10 @@ settings.clear.confirm = Are you sure you want to clear this data?\nWhat is done settings.clearall.confirm = [scarlet]WARNING![]\nThis will clear all data, including saves, maps, unlocks and keybinds.\nOnce you press 'ok' the game will wipe all data and automatically exit. settings.clearsaves.confirm = Are you sure you want to clear all your saves? settings.clearsaves = Clear Saves +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent]< Paused > clear = Clear banned = [scarlet]Banned @@ -570,12 +580,14 @@ info.title = Info error.title = [scarlet]An error has occured error.crashtitle = An error has occured unit.nobuild = [scarlet]Unit can't build +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]??? + stat.input = Input stat.output = Output stat.booster = Booster stat.tiles = Required Tiles stat.affinities = Affinities -block.unknown = [lightgray]??? stat.powercapacity = Power Capacity stat.powershot = Power/Shot stat.damage = Damage @@ -594,6 +606,7 @@ stat.powerconnections = Max Connections stat.poweruse = Power Use stat.powerdamage = Power/Damage stat.itemcapacity = Item Capacity +stat.memorycapacity = Memory Capacity stat.basepowergeneration = Base Power Generation stat.productiontime = Production Time stat.repairtime = Block Full Repair Time @@ -613,6 +626,28 @@ stat.reload = Shots/Second stat.ammo = Ammo stat.shieldhealth = Shield Health stat.cooldowntime = Cooldown Time +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Better Drill Required bar.noresources = Missing Resources @@ -624,6 +659,7 @@ bar.powerbalance = Power: {0}/s bar.powerstored = Stored: {0}/{1} bar.poweramount = Power: {0} bar.poweroutput = Power Output: {0} +bar.powerlines = Connections: {0}/{1} bar.items = Items: {0} bar.capacity = Capacity: {0} bar.unitcap = {0} {1}/{2} @@ -635,6 +671,8 @@ bar.progress = Build Progress bar.input = Input bar.output = Output +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray] damage bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.incendiary = [stat]incendiary @@ -642,12 +680,15 @@ bullet.homing = [stat]homing bullet.shock = [stat]shock bullet.frag = [stat]frag bullet.knockback = [stat]{0}[lightgray] knockback +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat]freezing bullet.tarred = [stat]tarred bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier bullet.reload = [stat]{0}[lightgray]x fire rate unit.blocks = blocks +unit.blockssquared = blocks² unit.powersecond = power units/second unit.liquidsecond = liquid units/second unit.itemssecond = items/second @@ -670,7 +711,7 @@ category.power = Power category.liquids = Liquids category.items = Items category.crafting = Input/Output -category.shooting = Shooting +category.function = Function category.optional = Optional Enhancements setting.landscape.name = Lock Landscape setting.shadows.name = Shadows @@ -679,7 +720,6 @@ setting.linear.name = Linear Filtering setting.hints.name = Hints setting.flow.name = Display Resource Flow Rate setting.buildautopause.name = Auto-Pause Building -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = Animated Fluids setting.animatedshields.name = Animated Shields setting.antialias.name = Antialias[lightgray] (requires restart)[] @@ -713,7 +753,6 @@ setting.fullscreen.name = Fullscreen setting.borderlesswindow.name = Borderless Window[lightgray] (restart may be required) setting.fps.name = Show FPS & Ping setting.smoothcamera.name = Smooth Camera -setting.blockselectkeys.name = Show Block Select Keys setting.vsync.name = VSync setting.pixelate.name = Pixelate setting.minimap.name = Show Minimap @@ -822,6 +861,7 @@ mode.custom = Custom Rules rules.infiniteresources = Infinite Resources rules.reactorexplosions = Reactor Explosions +rules.schematic = Schematics Allowed rules.wavetimer = Wave Timer rules.waves = Waves rules.attack = Attack Mode @@ -847,6 +887,7 @@ rules.title.unit = Units rules.title.experimental = Experimental rules.title.environment = Environment rules.lighting = Lighting +rules.enemyLights = Enemy Lights rules.fire = Fire rules.explosions = Block/Unit Explosion Damage rules.ambientlight = Ambient Light @@ -858,6 +899,7 @@ content.item.name = Items content.liquid.name = Liquids content.unit.name = Units content.block.name = Blocks + item.copper.name = Copper item.lead.name = Lead item.coal.name = Coal @@ -879,23 +921,6 @@ liquid.slag.name = Slag liquid.oil.name = Oil liquid.cryofluid.name = Cryofluid -item.explosiveness = [lightgray]Explosiveness: {0}% -item.flammability = [lightgray]Flammability: {0}% -item.radioactivity = [lightgray]Radioactivity: {0}% - -unit.health = [lightgray]Health: {0} -unit.speed = [lightgray]Speed: {0} -unit.weapon = [lightgray]Weapon: {0} -unit.itemcapacity = [lightgray]Item Capacity: {0} -unit.minespeed = [lightgray]Mining Speed: {0}% -unit.minepower = [lightgray]Mining Power: {0} -unit.ability = [lightgray]Ability: {0} -unit.buildspeed = [lightgray]Building Speed: {0}% - -liquid.heatcapacity = [lightgray]Heat Capacity: {0} -liquid.viscosity = [lightgray]Viscosity: {0} -liquid.temperature = [lightgray]Temperature: {0} - unit.dagger.name = Dagger unit.mace.name = Mace unit.fortress.name = Fortress @@ -936,6 +961,7 @@ block.cliff.name = Cliff block.sand-boulder.name = Sand Boulder block.grass.name = Grass block.slag.name = Slag +block.space.name = Space block.salt.name = Salt block.salt-wall.name = Salt Wall block.pebbles.name = Pebbles @@ -981,6 +1007,7 @@ block.darksand-water.name = Dark Sand Water block.char.name = Char block.dacite.name = Dacite block.dacite-wall.name = Dacite Wall +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = Ice Snow block.stone-wall.name = Stone Wall block.ice-wall.name = Ice Wall @@ -1075,6 +1102,7 @@ block.power-source.name = Power Infinite block.unloader.name = Unloader block.vault.name = Vault block.wave.name = Wave +block.tsunami.name = Tsunami block.swarmer.name = Swarmer block.salvo.name = Salvo block.ripple.name = Ripple @@ -1114,6 +1142,7 @@ block.arc.name = Arc block.rtg-generator.name = RTG Generator block.spectre.name = Spectre block.meltdown.name = Meltdown +block.foreshadow.name = Foreshadow block.container.name = Container block.launch-pad.name = Launch Pad block.launch-pad-large.name = Large Launch Pad @@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor block.logic-display.name = Logic Display block.large-logic-display.name = Large Logic Display block.memory-cell.name = Memory Cell +block.memory-bank.name = Memory Bank team.blue.name = blue team.crux.name = red @@ -1302,4 +1332,4 @@ block.cyclone.description = A large anti-air and anti-ground turret. Fires explo block.spectre.description = A massive dual-barreled cannon. Shoots large armor-piercing bullets at air and ground targets. block.meltdown.description = A massive laser cannon. Charges and fires a persistent laser beam at nearby enemies. Requires coolant to operate. block.repair-point.description = Continuously heals the closest damaged unit in its vicinity. -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. \ No newline at end of file +block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 925465c595..5a4641638d 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -55,6 +55,7 @@ schematic.saved = Schéma sauvegardé. schematic.delete.confirm = Ce schéma sera supprimé définitivement. schematic.rename = Renommer le schéma schematic.info = {0}x{1}, {2} blocs +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = Vagues vaincues:[accent] {0} stat.enemiesDestroyed = Ennemis détruits:[accent] {0} @@ -100,7 +101,6 @@ done = Fait feature.unsupported = Votre appareil ne supporte pas cette fonctionnalité. mods.alphainfo = Gardez à l'esprit que les mods sont en alpha et[scarlet] peuvent être très buggés[].\nMerci de signaler les problèmes que vous rencontrez via le GitHub ou le Discord Mindustry. -mods.alpha = [accent](Alpha) mods = Mods mods.none = [lightgray]Aucun mod trouvé! mods.guide = Guide de Modding @@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] pour sélectionner et copier pausebuilding = [accent][[{0}][] pour mettre la construction en pause resumebuilding = [scarlet][[{0}][] pour reprendre la construction wave = [accent]Vague {0} +wave.cap = [accent]Wave {0}/{1} wave.waiting = [lightgray]Vague dans {0} wave.waveInProgress = [lightgray]Vague en cours waiting = [lightgray]En attente... waiting.players = En attente de joueurs... wave.enemies = [lightgray]{0} Ennemis restants wave.enemy = [lightgray]{0} Ennemi restant +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = Charger l'image saveimage = Sauvegarder l'image unknown = Inconnu @@ -328,6 +331,7 @@ editor.generation = Génération: editor.ingame = Éditer dans le jeu editor.publish.workshop = Publier sur le Workshop editor.newmap = Nouvelle carte +editor.center = Center workshop = Steam Workshop waves.title = Vagues waves.remove = Supprimer @@ -416,6 +420,7 @@ filters.empty = [lightgray]Aucun filtre! Ajoutez-en un avec les boutons ci-desso filter.distort = Déformation filter.noise = Bruit filter.enemyspawn = Zone d'apparition enemi +filter.spawnpath = Path To Spawn filter.corespawn = Zone d'apparition du noyau filter.median = Médian filter.oremedian = Minerai Médian @@ -440,6 +445,7 @@ filter.option.amount = Quantité filter.option.block = Bloc filter.option.floor = Sol filter.option.flooronto = Sol en question +filter.option.target = Target filter.option.wall = Mur filter.option.ore = Minerai filter.option.floor2 = Sol secondaire @@ -471,15 +477,9 @@ requirement.wave = Vague {0} dans {1} requirement.core = Détruire le Noyau ennemi dans {0} requirement.research = Research {0} requirement.capture = Capture {0} -resume = Reprendre la partie:\n[lightgray]{0} bestwave = [lightgray]Meilleur: {0} -launch = < LANCEMENT > launch.text = Launch -launch.title = Lancement Réussi -launch.next = [lightgray]prochaine opportunité à la vague {0} -launch.unable2 = [scarlet]LANCEMENT impossible.[] -launch.confirm = Cela va transférer toutes les ressources de votre noyau.\nVous ne pourrez plus retourner à cette base. -launch.skip.confirm = Si vous passez à la vague suivante, vous ne pourrez pas effectuer le lancement avant les prochaines vagues. +research.multiplayer = Only the host can research items. uncover = Découvrir configure = Modifier les ressources à emporter loadout = Loadout @@ -512,6 +512,7 @@ weather.rain.name = Rain weather.snow.name = Snow weather.sandstorm.name = Sandstorm weather.sporestorm.name = Sporestorm +weather.fog.name = Fog sectors.unexplored = [lightgray]Unexplored sectors.resources = Resources: @@ -521,6 +522,11 @@ sectors.resume = Resume sectors.launch = Launch sectors.select = Select sectors.nonelaunch = [lightgray]none (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = Ground Zero sector.craters.name = The Craters @@ -560,6 +566,10 @@ settings.clear.confirm = Êtes-vous sûr d'effacer ces données ?\nAucun retour settings.clearall.confirm = [scarlet]ATTENTION![]\nCette action effacera toutes les données, y compris les sauvegardes, les cartes, la progression et la configuration des touches.\nUne fois que vous aurez pressé 'OK' le jeu effacera TOUTES les données et se fermera. settings.clearsaves.confirm = Are you sure you want to clear all your saves? settings.clearsaves = Clear Saves +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent]< Pause > clear = Effacer banned = [scarlet]Bannis @@ -570,12 +580,14 @@ info.title = Info error.title = [crimson]Une erreur s'est produite error.crashtitle = Une erreur s'est produite unit.nobuild = [scarlet]Cette unité ne peut construire +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]??? + stat.input = Entrée stat.output = Sortie stat.booster = Booster stat.tiles = Pré-requis stat.affinities = Affinités -block.unknown = [lightgray]??? stat.powercapacity = Capacité d'énergie stat.powershot = Énergie/Tir stat.damage = Dégâts @@ -594,6 +606,7 @@ stat.powerconnections = Nombre maximal de connections stat.poweruse = Énergie utilisée stat.powerdamage = Dégâts d'énergie stat.itemcapacity = Stockage +stat.memorycapacity = Memory Capacity stat.basepowergeneration = Production d'énergie stat.productiontime = Durée de production stat.repairtime = Durée de réparation complète du Bloc @@ -613,6 +626,28 @@ stat.reload = Tirs/Seconde stat.ammo = Munitions stat.shieldhealth = Shield Health stat.cooldowntime = Cooldown Time +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Meilleure Foreuse Requise bar.noresources = Missing Resources @@ -624,6 +659,7 @@ bar.powerbalance = Énergie: {0}/s bar.powerstored = En stock: {0}/{1} bar.poweramount = Énergie: {0} bar.poweroutput = Énergie Produite: {0} +bar.powerlines = Connections: {0}/{1} bar.items = Objets: {0} bar.capacity = Capacité: {0} bar.unitcap = {0} {1}/{2} @@ -635,6 +671,8 @@ bar.progress = Progression de la construction bar.input = Entrée bar.output = Sortie +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray] dégâts bullet.splashdamage = [stat]{0}[lightgray] dégâts de zone ~[stat] {1}[lightgray] blocs bullet.incendiary = [stat]incendiaire @@ -642,12 +680,15 @@ bullet.homing = [stat]autoguidé bullet.shock = [stat]choc électrique bullet.frag = [stat]explosif bullet.knockback = [stat]{0}[lightgray] recul +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat]gel bullet.tarred = [stat]goudronné bullet.multiplier = [stat]{0}[lightgray]x multiplicateur de munitions bullet.reload = [stat]{0}[lightgray]x vitesse de tir unit.blocks = blocs +unit.blockssquared = blocks² unit.powersecond = énergie/seconde unit.liquidsecond = unité de liquide/seconde unit.itemssecond = objets/seconde @@ -670,7 +711,7 @@ category.power = Énergie category.liquids = Liquides category.items = Objets category.crafting = Fabrication -category.shooting = Puissance de feu +category.function = Function category.optional = Améliorations optionnelles setting.landscape.name = Verrouiller en rotation paysage setting.shadows.name = Ombres @@ -679,7 +720,6 @@ setting.linear.name = Filtrage Linéaire setting.hints.name = Astuces setting.flow.name = Afficher le Débit des Ressources setting.buildautopause.name = Confirmation avant la construction -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = Eau animée setting.animatedshields.name = Boucliers Animés setting.antialias.name = Anticrénelage[lightgray] (redémarrage du jeu nécessaire)[] @@ -713,7 +753,6 @@ setting.fullscreen.name = Plein Écran setting.borderlesswindow.name = Fenêtre sans bords (Borderless)[lightgray] (peut nécessiter le redémarrage du jeu) setting.fps.name = Afficher FPS et Ping setting.smoothcamera.name = Lissage de la Caméra -setting.blockselectkeys.name = Afficher les Touches pour Sélectionner les Blocs avec un Clavier setting.vsync.name = VSync setting.pixelate.name = Pixeliser[lightgray] (désactive les animations) setting.minimap.name = Afficher la Minimap @@ -822,6 +861,7 @@ mode.custom = Règles personnalisées rules.infiniteresources = Ressources infinies rules.reactorexplosions = Explosion des Réacteurs +rules.schematic = Schematics Allowed rules.wavetimer = Minuterie pour les vagues rules.waves = Vagues rules.attack = Mode « Attaque » @@ -847,6 +887,7 @@ rules.title.unit = Unités rules.title.experimental = Expérimental rules.title.environment = Environment rules.lighting = Éclairage +rules.enemyLights = Enemy Lights rules.fire = Fire rules.explosions = Block/Unit Explosion Damage rules.ambientlight = Éclairage Ambiant @@ -858,6 +899,7 @@ content.item.name = Objets content.liquid.name = Liquides content.unit.name = Unités content.block.name = Blocs + item.copper.name = Cuivre item.lead.name = Plomb item.coal.name = Charbon @@ -879,23 +921,6 @@ liquid.slag.name = Scories liquid.oil.name = Pétrole liquid.cryofluid.name = Liquide Cryogénique -item.explosiveness = [lightgray]Explosivité: {0} -item.flammability = [lightgray]Inflammabilité: {0} -item.radioactivity = [lightgray]Radioactivité: {0} - -unit.health = [lightgray]Santé: {0} -unit.speed = [lightgray]Vitesse: {0} -unit.weapon = [lightgray]Arme: {0} -unit.itemcapacity = [lightgray]Stockage: {0} -unit.minespeed = [lightgray]Vitesse de Minage: {0}% -unit.minepower = [lightgray]Puissance de Minage: {0} -unit.ability = [lightgray]Abilité: {0} -unit.buildspeed = [lightgray]Vitesse de Construction: {0}% - -liquid.heatcapacity = [lightgray]Capacité Thermique: {0} -liquid.viscosity = [lightgray]Viscosité: {0} -liquid.temperature = [lightgray]Température: {0} - unit.dagger.name = Poignard unit.mace.name = Mace unit.fortress.name = Forteresse @@ -936,6 +961,7 @@ block.cliff.name = Falaise block.sand-boulder.name = Bloc de Sable block.grass.name = Herbe block.slag.name = Scories +block.space.name = Space block.salt.name = Sel block.salt-wall.name = Salt Wall block.pebbles.name = Cailloux @@ -981,6 +1007,7 @@ block.darksand-water.name = Eau avec fond de Sable Sombre block.char.name = Cendre block.dacite.name = Dacite block.dacite-wall.name = Dacite Wall +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = Neige et Glace block.stone-wall.name = Stone Wall block.ice-wall.name = Ice Wall @@ -1075,6 +1102,7 @@ block.power-source.name = Source d'Énergie block.unloader.name = Déchargeur block.vault.name = Coffre-Fort block.wave.name = Onde +block.tsunami.name = Tsunami block.swarmer.name = Nuée block.salvo.name = Salve block.ripple.name = Percussion @@ -1114,6 +1142,7 @@ block.arc.name = Arc block.rtg-generator.name = Générateur G.T.R. block.spectre.name = Spectre block.meltdown.name = Fusion +block.foreshadow.name = Foreshadow block.container.name = Conteneur block.launch-pad.name = Plateforme de Lancement block.launch-pad-large.name = Grande Plateforme de Lancement @@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor block.logic-display.name = Logic Display block.large-logic-display.name = Large Logic Display block.memory-cell.name = Memory Cell +block.memory-bank.name = Memory Bank team.blue.name = bleu team.crux.name = rouge @@ -1302,4 +1332,4 @@ block.cyclone.description = Une grande tourelle qui tire rapidement des débris block.spectre.description = Une tourelle massive à double cannon et qui tire de puissantes balles perce-blindages simultanément. block.meltdown.description = Une tourelle massive chargeant et tirant de puissants rayons lasers. Nécessite un liquide de refroidissement. block.repair-point.description = Soigne en permanence l'unité endommagée la plus proche à proximité. -block.segment.description = Endommage et détruit les tirs ennemis. Cependant, les lasers ne peuvent pas être ciblés. \ No newline at end of file +block.segment.description = Endommage et détruit les tirs ennemis. Cependant, les lasers ne peuvent pas être ciblés. diff --git a/core/assets/bundles/bundle_fr_BE.properties b/core/assets/bundles/bundle_fr_BE.properties index 869da14c46..0ec65d8cc1 100644 --- a/core/assets/bundles/bundle_fr_BE.properties +++ b/core/assets/bundles/bundle_fr_BE.properties @@ -55,6 +55,7 @@ schematic.saved = Schéma enregistré. schematic.delete.confirm = Ce Schéma sera totalement éradiqué. schematic.rename = Renommer Schéma schematic.info = {0}x{1}, {2} blocks +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = Vagues vaincues:[accent] {0} stat.enemiesDestroyed = Ennemies détruits:[accent] {0} @@ -100,7 +101,6 @@ done = Fini feature.unsupported = Votre appareil ne prend pas en charge cette fonctionnalité. mods.alphainfo = Tenez en compte que les mods sont en version alpha et [scarlet] qu'ils peuvent avoir des bugs[].\nVeuillez signaler tout les problèmes que vous encontrez sur le Github de Mindustry ou sur Discord. -mods.alpha = [accent](Alpha) mods = Mods mods.none = [lightgray]Aucun Mod trouvé ! mods.guide = Guide de Modding @@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] to select+copy pausebuilding = [accent][[{0}][] to pause building resumebuilding = [scarlet][[{0}][] to resume building wave = [accent]Vague {0} +wave.cap = [accent]Wave {0}/{1} wave.waiting = [lightgray]Prochaine vague dans {0} wave.waveInProgress = [lightgray]Vague en cours waiting = [lightgray]En attente... waiting.players = En attente de joueurs ... wave.enemies = [lightgray]{0} Ennemis restants wave.enemy = [lightgray]{0} Ennemi restant +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = Charger l'image saveimage = Sauvegarder l'image unknown = Inconnu @@ -328,6 +331,7 @@ editor.generation = Generation: editor.ingame = Modifier en jeu editor.publish.workshop = Publish On Workshop editor.newmap = Nouvelle carte +editor.center = Center workshop = Workshop waves.title = Vagues waves.remove = Retirer @@ -416,6 +420,7 @@ filters.empty = [lightgray]Aucun filtre! Ajoutez-en un avec les boutons ci-desso filter.distort = Déformation filter.noise = Bruit filter.enemyspawn = Enemy Spawn Select +filter.spawnpath = Path To Spawn filter.corespawn = Core Select filter.median = Median filter.oremedian = Ore Median @@ -440,6 +445,7 @@ filter.option.amount = Amount filter.option.block = Bloc filter.option.floor = Sol filter.option.flooronto = Sible au sol +filter.option.target = Target filter.option.wall = Mur filter.option.ore = Minerai filter.option.floor2 = Sol secondaire @@ -471,15 +477,9 @@ requirement.wave = Reach Wave {0} in {1} requirement.core = Destroy Enemy Core in {0} requirement.research = Research {0} requirement.capture = Capture {0} -resume = Reprendre la partie en cours:\n[lightgray]{0} bestwave = [lightgray]Meilleur: {0} -launch = Lancement launch.text = Launch -launch.title = Lancement réussi -launch.next = [lightgray]Prochaine opportunité à la vague {0} -launch.unable2 = [scarlet]Unable to LAUNCH.[] -launch.confirm = Cela lancera toutes les ressources dans votre noyau.\nVous ne pourrez pas revenir à cette base. -launch.skip.confirm = If you skip now, you will not be able to launch until later waves. +research.multiplayer = Only the host can research items. uncover = Découvrir configure = Configurer le transfert des ressources. loadout = Loadout @@ -512,6 +512,7 @@ weather.rain.name = Rain weather.snow.name = Snow weather.sandstorm.name = Sandstorm weather.sporestorm.name = Sporestorm +weather.fog.name = Fog sectors.unexplored = [lightgray]Unexplored sectors.resources = Resources: @@ -521,6 +522,11 @@ sectors.resume = Resume sectors.launch = Launch sectors.select = Select sectors.nonelaunch = [lightgray]none (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = Ground Zero sector.craters.name = The Craters @@ -560,6 +566,10 @@ settings.clear.confirm = Êtes-vous sûr d'effacer ces données ?\n[scarlet]Ceci settings.clearall.confirm = [scarlet]ATTENTION![]\nCet action effacera toutes les données , incluant les sauvegarges, les cartes, les déblocages et la configuration des touches.\nUne fois que vous aurez pressé 'Ok' le jeu effacera toutes les données et se fermera. settings.clearsaves.confirm = Are you sure you want to clear all your saves? settings.clearsaves = Clear Saves +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = En pause clear = Clear banned = [scarlet]Banned @@ -570,12 +580,14 @@ info.title = Info error.title = [crimson]Une erreur s'est produite error.crashtitle = Une erreur s'est produite unit.nobuild = [scarlet]Unit can't build +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]Inconnu + stat.input = Ressource(s) requise(s) stat.output = Ressource(s) produite(s) stat.booster = Booster stat.tiles = Required Tiles stat.affinities = Affinities -block.unknown = [lightgray]Inconnu stat.powercapacity = Capacité d'énergie stat.powershot = Énergie/Tir stat.damage = Damage @@ -594,6 +606,7 @@ stat.powerconnections = Max Connections stat.poweruse = Énergie utilisée stat.powerdamage = Énergie/Dégâts stat.itemcapacity = Stockage +stat.memorycapacity = Memory Capacity stat.basepowergeneration = Production d'énergie de base stat.productiontime = Temps de production stat.repairtime = Temps pour la réparation totale du bloc @@ -613,6 +626,28 @@ stat.reload = Tirs/Seconde stat.ammo = Munition stat.shieldhealth = Shield Health stat.cooldowntime = Cooldown Time +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Better Drill Required bar.noresources = Missing Resources @@ -624,6 +659,7 @@ bar.powerbalance = Énergie: {0} bar.powerstored = Stored: {0}/{1} bar.poweramount = Énergie: {0} bar.poweroutput = Énergie en sortie: {0} +bar.powerlines = Connections: {0}/{1} bar.items = Objets: {0} bar.capacity = Capacity: {0} bar.unitcap = {0} {1}/{2} @@ -635,6 +671,8 @@ bar.progress = Progression de la construction bar.input = Input bar.output = Output +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray] dégats bullet.splashdamage = [stat]{0}[lightgray] dgt zone ~[stat] {1}[lightgray] tuiles bullet.incendiary = [stat]incendiaire @@ -642,12 +680,15 @@ bullet.homing = [stat]autoguidage bullet.shock = [stat]choc bullet.frag = [stat]frag bullet.knockback = [stat]{0}[lightgray]recul +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat]gel bullet.tarred = [stat]goudronné bullet.multiplier = [stat]{0}[lightgray]x multiplicateur de munitions bullet.reload = [stat]{0}[lightgray]x vitesse de rechargement unit.blocks = Blocs +unit.blockssquared = blocks² unit.powersecond = Énergie/seconde unit.liquidsecond = Liquides/seconde unit.itemssecond = Objets/seconde @@ -670,7 +711,7 @@ category.power = Énergie category.liquids = Liquides category.items = Objets category.crafting = Fabrication -category.shooting = Défense +category.function = Function category.optional = Améliorations facultatives setting.landscape.name = Verrouiller la rotation en mode paysage setting.shadows.name = Ombres @@ -679,7 +720,6 @@ setting.linear.name = Filtrage linéaire setting.hints.name = Hints setting.flow.name = Display Resource Flow Rate[scarlet] (experimental) setting.buildautopause.name = Auto-Pause Building -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = Eau animée setting.animatedshields.name = Boucliers Animés setting.antialias.name = Antialias[lightgray] (demande le redémarrage de l'appareil)[] @@ -713,7 +753,6 @@ setting.fullscreen.name = Plein écran setting.borderlesswindow.name = Fenêtre sans bordure[lightgray] (peut nécessiter un redémarrage) setting.fps.name = Afficher FPS setting.smoothcamera.name = Smooth Camera -setting.blockselectkeys.name = Show Block Select Keys setting.vsync.name = VSync setting.pixelate.name = Pixélisé [lightgray](peut diminuer les performances)[] setting.minimap.name = Montrer la minimap @@ -822,6 +861,7 @@ mode.custom = Règles personnalisées rules.infiniteresources = Ressources infinies rules.reactorexplosions = Reactor Explosions +rules.schematic = Schematics Allowed rules.wavetimer = Temps de vague rules.waves = Vague rules.attack = Mode attaque @@ -847,6 +887,7 @@ rules.title.unit = Unités rules.title.experimental = Experimental rules.title.environment = Environment rules.lighting = Lighting +rules.enemyLights = Enemy Lights rules.fire = Fire rules.explosions = Block/Unit Explosion Damage rules.ambientlight = Ambient Light @@ -858,6 +899,7 @@ content.item.name = Objets content.liquid.name = Liquides content.unit.name = Unités content.block.name = Blocs + item.copper.name = Cuivre item.lead.name = Plomb item.coal.name = Charbon @@ -879,23 +921,6 @@ liquid.slag.name = Scorie liquid.oil.name = Pétrole liquid.cryofluid.name = Liquide Cryogénique -item.explosiveness = [lightgray]Explosivité: {0} -item.flammability = [lightgray]Inflammabilité: {0} -item.radioactivity = [lightgray]Radioactivité: {0} - -unit.health = [lightgray]Santé: {0} -unit.speed = [lightgray]Vitesse: {0} -unit.weapon = [lightgray]Weapon: {0} -unit.itemcapacity = [lightgray]Item Capacity: {0} -unit.minespeed = [lightgray]Mining Speed: {0}% -unit.minepower = [lightgray]Mining Power: {0} -unit.ability = [lightgray]Ability: {0} -unit.buildspeed = [lightgray]Building Speed: {0}% - -liquid.heatcapacity = [lightgray]Capacité Thermique {0} -liquid.viscosity = [lightgray]Viscosité: {0} -liquid.temperature = [lightgray]Température: {0} - unit.dagger.name = Poignard unit.mace.name = Mace unit.fortress.name = Forteresse @@ -936,6 +961,7 @@ block.cliff.name = Cliff block.sand-boulder.name = Sable rocheux block.grass.name = Herbe block.slag.name = Slag +block.space.name = Space block.salt.name = Sel block.salt-wall.name = Salt Wall block.pebbles.name = Cailloux @@ -981,6 +1007,7 @@ block.darksand-water.name = Eau (sable noir) block.char.name = Carboniser block.dacite.name = Dacite block.dacite-wall.name = Dacite Wall +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = Neige glacée block.stone-wall.name = Stone Wall block.ice-wall.name = Ice Wall @@ -1075,6 +1102,7 @@ block.power-source.name = Puissance infinie block.unloader.name = Déchargeur block.vault.name = Coffre-Fort block.wave.name = Vague +block.tsunami.name = Tsunami block.swarmer.name = Essaim block.salvo.name = Salve block.ripple.name = Ripple @@ -1114,6 +1142,7 @@ block.arc.name = Arc block.rtg-generator.name = G.T.R. block.spectre.name = Spectre block.meltdown.name = Meltdown +block.foreshadow.name = Foreshadow block.container.name = Conteneur block.launch-pad.name = Rampe de lancement block.launch-pad-large.name = Grande rampe de lancement @@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor block.logic-display.name = Logic Display block.large-logic-display.name = Large Logic Display block.memory-cell.name = Memory Cell +block.memory-bank.name = Memory Bank team.blue.name = Bleu team.crux.name = red @@ -1302,4 +1332,4 @@ block.cyclone.description = Une grande tourelle à tir rapide. block.spectre.description = Une grande tourelle qui tire deux balles puissantes à la fois. block.meltdown.description = Une grande tourelle qui tire de puissants faisceaux à longue portée. block.repair-point.description = Soigne en permanence l'unité endommagée la plus proche à proximité. -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. \ No newline at end of file +block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index c24c9a24ee..0d342c5491 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -55,6 +55,7 @@ schematic.saved = Schematic mentve. schematic.delete.confirm = Ez a Schematic törölve lesz. schematic.rename = Schematic átnevezése schematic.info = {0}x{1}, {2} blokk +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = Hullámok kivédve:[accent] {0} stat.enemiesDestroyed = Ellenségek kivédve:[accent] {0} @@ -100,7 +101,6 @@ done = Kész feature.unsupported = Az eszköz nem támogatja a funkciót. mods.alphainfo = Figyelem! a modok alfa állapotban vannak, és[scarlet] nagyon sok lehet benne a hiba[].\nJelentsd be az esetleges hibákat a Mindustry GitHubon vagy a Discordon. -mods.alpha = [accent](Alfa) mods = Modok mods.none = [LIGHT_GRAY]Nincsen Mod! mods.guide = Mod készítési útmutató @@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] to select+copy pausebuilding = [accent][[{0}][] to pause building resumebuilding = [scarlet][[{0}][] to resume building wave = [accent]{0}. hullám +wave.cap = [accent]Wave {0}/{1} wave.waiting = [lightgray]Következő hullám: {0} wave.waveInProgress = [lightgray]Wave in progress waiting = [lightgray]Várakozás... waiting.players = Waiting for players... wave.enemies = [lightgray]{0} ellenség maradt wave.enemy = [lightgray]{0} ellenség maradt +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = Load Image saveimage = Save Image unknown = Unknown @@ -328,6 +331,7 @@ editor.generation = Generation: editor.ingame = Edit In-Game editor.publish.workshop = Publish On Workshop editor.newmap = New Map +editor.center = Center workshop = Workshop waves.title = Waves waves.remove = Remove @@ -416,6 +420,7 @@ filters.empty = [lightgray]No filters! Add one with the button below. filter.distort = Distort filter.noise = Noise filter.enemyspawn = Enemy Spawn Select +filter.spawnpath = Path To Spawn filter.corespawn = Core Select filter.median = Median filter.oremedian = Ore Median @@ -440,6 +445,7 @@ filter.option.amount = Amount filter.option.block = Block filter.option.floor = Floor filter.option.flooronto = Target Floor +filter.option.target = Target filter.option.wall = Wall filter.option.ore = Ore filter.option.floor2 = Secondary Floor @@ -471,15 +477,9 @@ requirement.wave = Reach Wave {0} in {1} requirement.core = Destroy Enemy Core in {0} requirement.research = Research {0} requirement.capture = Capture {0} -resume = Resume Zone:\n[lightgray]{0} bestwave = [lightgray]Best Wave: {0} -launch = < INDÍTÁS > launch.text = Launch -launch.title = Indítás sikeres -launch.next = [lightgray]következő lehetőség a {0}. hullámnál -launch.unable2 = [scarlet]Nem lehet ELINDÍTANI.[] -launch.confirm = This will launch all resources in your core.\nYou will not be able to return to this base. -launch.skip.confirm = If you skip now, you will not be able to launch until later waves. +research.multiplayer = Only the host can research items. uncover = Uncover configure = Configure Loadout loadout = Loadout @@ -512,6 +512,7 @@ weather.rain.name = Rain weather.snow.name = Snow weather.sandstorm.name = Sandstorm weather.sporestorm.name = Sporestorm +weather.fog.name = Fog sectors.unexplored = [lightgray]Unexplored sectors.resources = Resources: @@ -521,6 +522,11 @@ sectors.resume = Resume sectors.launch = Launch sectors.select = Select sectors.nonelaunch = [lightgray]none (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = Ground Zero sector.craters.name = The Craters @@ -560,6 +566,10 @@ settings.clear.confirm = Are you sure you want to clear this data?\nWhat is done settings.clearall.confirm = [scarlet]WARNING![]\nThis will clear all data, including saves, maps, unlocks and keybinds.\nOnce you press 'ok' the game will wipe all data and automatically exit. settings.clearsaves.confirm = Are you sure you want to clear all your saves? settings.clearsaves = Clear Saves +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent]< Paused > clear = Clear banned = [scarlet]Banned @@ -570,12 +580,14 @@ info.title = Info error.title = [crimson]An error has occured error.crashtitle = An error has occured unit.nobuild = [scarlet]Unit can't build +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]??? + stat.input = Input stat.output = Output stat.booster = Booster stat.tiles = Required Tiles stat.affinities = Affinities -block.unknown = [lightgray]??? stat.powercapacity = Power Capacity stat.powershot = Power/Shot stat.damage = Damage @@ -594,6 +606,7 @@ stat.powerconnections = Max Connections stat.poweruse = Power Use stat.powerdamage = Power/Damage stat.itemcapacity = Item Capacity +stat.memorycapacity = Memory Capacity stat.basepowergeneration = Base Power Generation stat.productiontime = Production Time stat.repairtime = Block Full Repair Time @@ -613,6 +626,28 @@ stat.reload = Shots/Second stat.ammo = Ammo stat.shieldhealth = Shield Health stat.cooldowntime = Cooldown Time +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Better Drill Required bar.noresources = Missing Resources @@ -624,6 +659,7 @@ bar.powerbalance = Power: {0}/s bar.powerstored = Stored: {0}/{1} bar.poweramount = Power: {0} bar.poweroutput = Power Output: {0} +bar.powerlines = Connections: {0}/{1} bar.items = Items: {0} bar.capacity = Capacity: {0} bar.unitcap = {0} {1}/{2} @@ -635,6 +671,8 @@ bar.progress = Build Progress bar.input = Input bar.output = Output +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray] damage bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.incendiary = [stat]incendiary @@ -642,12 +680,15 @@ bullet.homing = [stat]homing bullet.shock = [stat]shock bullet.frag = [stat]frag bullet.knockback = [stat]{0}[lightgray] knockback +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat]freezing bullet.tarred = [stat]tarred bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier bullet.reload = [stat]{0}[lightgray]x fire rate unit.blocks = blocks +unit.blockssquared = blocks² unit.powersecond = power units/second unit.liquidsecond = liquid units/second unit.itemssecond = items/second @@ -670,7 +711,7 @@ category.power = Power category.liquids = Liquids category.items = Items category.crafting = Input/Output -category.shooting = Shooting +category.function = Function category.optional = Optional Enhancements setting.landscape.name = Lock Landscape setting.shadows.name = Shadows @@ -679,7 +720,6 @@ setting.linear.name = Linear Filtering setting.hints.name = Hints setting.flow.name = Display Resource Flow Rate setting.buildautopause.name = Auto-Pause Building -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = Animated Water setting.animatedshields.name = Animated Shields setting.antialias.name = Antialias[lightgray] (requires restart)[] @@ -691,7 +731,7 @@ setting.touchscreen.name = Touchscreen Controls setting.fpscap.name = Max FPS setting.fpscap.none = None setting.fpscap.text = {0} FPS -setting.uiscale.name = UI Scaling[lightgray] (require restart)[] +setting.uiscale.name = UI Scaling[lightgray] (requires restart)[] setting.swapdiagonal.name = Always Diagonal Placement setting.difficulty.training = Training setting.difficulty.easy = Easy @@ -713,7 +753,6 @@ setting.fullscreen.name = Fullscreen setting.borderlesswindow.name = Borderless Window[lightgray] (may require restart) setting.fps.name = Show FPS & Ping setting.smoothcamera.name = Smooth Camera -setting.blockselectkeys.name = Show Block Select Keys setting.vsync.name = VSync setting.pixelate.name = Pixelate setting.minimap.name = Show Minimap @@ -822,6 +861,7 @@ mode.custom = Custom Rules rules.infiniteresources = Infinite Resources rules.reactorexplosions = Reactor Explosions +rules.schematic = Schematics Allowed rules.wavetimer = Wave Timer rules.waves = Waves rules.attack = Attack Mode @@ -847,6 +887,7 @@ rules.title.unit = Units rules.title.experimental = Experimental rules.title.environment = Environment rules.lighting = Lighting +rules.enemyLights = Enemy Lights rules.fire = Fire rules.explosions = Block/Unit Explosion Damage rules.ambientlight = Ambient Light @@ -858,6 +899,7 @@ content.item.name = Items content.liquid.name = Liquids content.unit.name = Units content.block.name = Blocks + item.copper.name = Copper item.lead.name = Lead item.coal.name = Coal @@ -879,23 +921,6 @@ liquid.slag.name = Slag liquid.oil.name = Oil liquid.cryofluid.name = Cryofluid -item.explosiveness = [lightgray]Robbanékonyság: {0}% -item.flammability = [lightgray]Gyúlékonyság: {0}% -item.radioactivity = [lightgray]Radioaktivitás: {0}% - -unit.health = [lightgray]Health: {0} -unit.speed = [lightgray]Sebesség: {0} -unit.weapon = [lightgray]Weapon: {0} -unit.itemcapacity = [lightgray]Item Capacity: {0} -unit.minespeed = [lightgray]Mining Speed: {0}% -unit.minepower = [lightgray]Mining Power: {0} -unit.ability = [lightgray]Ability: {0} -unit.buildspeed = [lightgray]Building Speed: {0}% - -liquid.heatcapacity = [lightgray]Hő hapacitás: {0} -liquid.viscosity = [lightgray]Viszkozitás: {0} -liquid.temperature = [lightgray]Hőmérséklet: {0} - unit.dagger.name = Dagger unit.mace.name = Mace unit.fortress.name = Fortress @@ -936,6 +961,7 @@ block.cliff.name = Cliff block.sand-boulder.name = Sand Boulder block.grass.name = Grass block.slag.name = Slag +block.space.name = Space block.salt.name = Salt block.salt-wall.name = Salt Wall block.pebbles.name = Pebbles @@ -981,6 +1007,7 @@ block.darksand-water.name = Dark Sand Water block.char.name = Char block.dacite.name = Dacite block.dacite-wall.name = Dacite Wall +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = Ice Snow block.stone-wall.name = Stone Wall block.ice-wall.name = Ice Wall @@ -1075,6 +1102,7 @@ block.power-source.name = Power Infinite block.unloader.name = Unloader block.vault.name = Vault block.wave.name = Wave +block.tsunami.name = Tsunami block.swarmer.name = Swarmer block.salvo.name = Salvo block.ripple.name = Ripple @@ -1114,6 +1142,7 @@ block.arc.name = Arc block.rtg-generator.name = RTG Generator block.spectre.name = Spectre block.meltdown.name = Meltdown +block.foreshadow.name = Foreshadow block.container.name = Container block.launch-pad.name = Launch Pad block.launch-pad-large.name = Large Launch Pad @@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor block.logic-display.name = Logic Display block.large-logic-display.name = Large Logic Display block.memory-cell.name = Memory Cell +block.memory-bank.name = Memory Bank team.blue.name = blue team.crux.name = red @@ -1302,4 +1332,4 @@ block.cyclone.description = A large anti-air and anti-ground turret. Fires explo block.spectre.description = A massive dual-barreled cannon. Shoots large armor-piercing bullets at air and ground targets. block.meltdown.description = A massive laser cannon. Charges and fires a persistent laser beam at nearby enemies. Requires coolant to operate. block.repair-point.description = Continuously heals the closest damaged unit in its vicinity. -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. \ No newline at end of file +block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. diff --git a/core/assets/bundles/bundle_in_ID.properties b/core/assets/bundles/bundle_in_ID.properties index e9f6f933eb..541d0d0c98 100644 --- a/core/assets/bundles/bundle_in_ID.properties +++ b/core/assets/bundles/bundle_in_ID.properties @@ -20,7 +20,7 @@ gameover = Permainan Habis gameover.pvp = Tim[accent] {0}[] menang! highscore = [accent]Rekor Baru! copied = Tersalin. -indevpopup = [accent]v6[] saat ini dalam versi [accent]alpha[].\n[lightgray]Artinya:[]\n[scarlet]- Kampanye belum sepenuhnya selesai[]\n- Beberapa konten tidak tersedia\n - Beberapa [scarlet]Unit AI[] tidak sepenuhnya bekerja\n- Beberapa unit belum sepenuhnya selesai\n- Semua yang kamu lihat dapat berubah atau dihapus sewaktu-waktu.\n\nLaporkan bug atau crash di [accent]Github[]. +indev.popup = [accent]v6[] is currently in [accent]beta[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- SFX and music are unfinished/missing\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[]. indev.notready = Bagian tersebut saat ini belum siap load.sound = Suara @@ -101,7 +101,6 @@ done = Selesai feature.unsupported = Perangkat Anda tidak mendukung fitur ini. mods.alphainfo = Perlu diingat bahwa mod masih dalam perkembangan, dan[scarlet] bisa mengakibatkan kerusakan[].\nLapor isu atau masalah di Github atau Discord Mindustry. -mods.alpha = [accent](Alpha) mods = Mod mods.none = [lightgray]Tidak ada mod yang ditemukan! mods.guide = Panduan Modding @@ -285,12 +284,15 @@ selectschematic = [accent][[{0}][] untuk memilih+salin pausebuilding = [accent][[{0}][] untuk berhenti membangun resumebuilding = [scarlet][[{0}][] untuk lanjut membangun wave = [accent]Gelombang {0} +wave.cap = [accent]Gelombang {0}/{1} wave.waiting = [lightgray]Gelombang di {0} wave.waveInProgress = [lightgray]Gelombang sedang berlangsung waiting = [lightgray]Menunggu... waiting.players = Menunggu pemain lainnya... wave.enemies = [lightgray]{0} Musuh Tersisa wave.enemy = [lightgray]{0} Musuh Tersisa +wave.guardianwarn = Guardian akan tiba dalam [accent]{0}[] gelombang. +wave.guardianwarn.one = Guardian akan tiba dalam [accent]{0}[] gelombang. loadimage = Memuat Gambar saveimage = Simpan Gambar unknown = Tak diketahui @@ -329,6 +331,7 @@ editor.generation = Generasi: editor.ingame = Sunting dalam Permainan editor.publish.workshop = Terbitkan di Workshop editor.newmap = Peta Baru +editor.center = Pusat workshop = Workshop waves.title = Gelombang waves.remove = Hapus @@ -347,7 +350,6 @@ waves.invalid = Gelombang tidak valid di papan klip. waves.copied = Gelombang tersalin. waves.none = Tidak ada musuh yang didefinisikan.\nIngat bahwa susunan gelombang yang kosong akan diubah menjadi susunan gelombang standar secara otomatis. -#memang sengaja diberi huruf kecil wavemode.counts = jumlah wavemode.totals = total wavemode.health = darah @@ -418,6 +420,7 @@ filters.empty = [lightgray]Tidak ada filter! Tambahkan dengan tombol dibawah. filter.distort = Kerusakkan filter.noise = Kebisingan filter.enemyspawn = Pilih Munculnya Musuh +filter.spawnpath = Path To Spawn filter.corespawn = Pilih Inti filter.median = Median filter.oremedian = Median Bijih @@ -442,6 +445,7 @@ filter.option.amount = Jumlah filter.option.block = Blok filter.option.floor = Lantai filter.option.flooronto = Target Lantai +filter.option.target = Target filter.option.wall = Dinding filter.option.ore = Sumber Daya filter.option.floor2 = Lantai Sekunder @@ -475,10 +479,9 @@ requirement.research = Kembangkan {0} requirement.capture = Kuasai {0} bestwave = [lightgray]Gelombang Terbaik: {0} launch.text = Luncurkan -campaign.multiplayer = Saat bermain bersama di kampanye, Kamu hanya bisa kembangkan menggunakan item dari sektor [accent]kamu[], [scarlet]Bukan[] sektor milik host yang kamu berada sekarang.\n\nUntuk mendapatkan item tersebut ke sektor [accent]kamu[] saat bermain bersama, gunakan [accent]alas peluncur[]. +research.multiplayer = Only the host can research items. uncover = Buka configure = Konfigurasi Muatan -#TODO loadout = Muatan resources = Sumber Daya bannedblocks = Balok yang dilarang @@ -487,14 +490,14 @@ launch.destination = Destinasi: {0} configure.invalid = Jumlah harus berupa angka diantara 0 dan {0}. zone.unlocked = [lightgray]{0} terbuka. zone.requirement.complete = Gelombang {0} terselesaikan:\nPersyaratan zona {1} tercapai. -zone.resources = Sumber Daya Terdeteksi: +zone.resources = [lightgray]Sumber Daya Terdeteksi: zone.objective = [lightgray]Objektif: [accent]{0} zone.objective.survival = Bertahan zone.objective.attack = Hancurkan Inti Musuh add = Menambahkan... boss.health = Darah Bos -connectfail = [crimson]Gagal menyambung ke server:\n\n[accent]{0} +connectfail = [scarlet]Gagal menyambung ke server:\n\n[accent]{0} error.unreachable = Server tak terjangkau.\nApakah alamatnya benar? error.invalidaddress = Alamat tidak valid. error.timedout = Kehabisan waktu!\nPastikan pemilik mempunyai port forwarding, dan alamatnya benar! @@ -509,6 +512,7 @@ weather.rain.name = Hujan weather.snow.name = Salju weather.sandstorm.name = Badai Pasir weather.sporestorm.name = Badai Spora +weather.fog.name = Kabut sectors.unexplored = [lightgray]Belum Ditelusuri sectors.resources = Sumber Daya: @@ -518,8 +522,12 @@ sectors.resume = Lanjutkan sectors.launch = Luncurkan sectors.select = Pilih sectors.nonelaunch = [lightgray]tidak ada +sectors.rename = Ganti Nama Sektor +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Matahari -#NOTE TO TRANSLATORS: don't bother editing these, they'll be removed and/or rewritten anyway sector.groundZero.name = Ground Zero sector.craters.name = The Craters sector.frozenForest.name = Frozen Forest @@ -532,21 +540,17 @@ sector.tarFields.name = Tar Fields sector.saltFlats.name = Salt Flats sector.fungalPass.name = Fungal Pass -#unused -#sector.impact0078.name = Impact 0078 -#sector.crags.name = Crags - -sector.groundZero.description = Lokasi yang optimal untuk bermain satu kali lagi. Sangat sedikit musuh. Beberapa sumber daya.\nKumpulkan timah dan tembaga sebanyak yang anda bisa.\nPindah. +sector.groundZero.description = Lokasi yang optimal untuk bermain pertama kali. Sangat sedikit musuh. Beberapa sumber daya.\nKumpulkan timah dan tembaga sebanyak yang anda bisa.\nPindah. sector.frozenForest.description = Disini, dekat dengan gunung, spora spora sudah menyebar. Temperatur yang sangat rendah tidak dapat mempertahankan selamanya.\n\nBerusaha untuk kekuatan. Bangun generator pembakaran. Pelajari cara menggunakan mender. -sector.saltFlats.description = On the outskirts of the desert lie the Salt Flats. Few resources can be found in this location.\n\nThe enemy has erected a resource storage complex here. Eradicate their core. Leave nothing standing. -sector.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills. -sector.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology. -sector.stainedMountains.description = Further inland lie the mountains, yet untainted by spores.\nExtract the abundant titanium in this area. Learn how to use it.\n\nThe enemy presence is greater here. Do not give them time to send their strongest units. -sector.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build Titan units. Destroy it. Reclaim that which was lost. -sector.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible. -sector.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks. -sector.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers. -sector.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores. +sector.saltFlats.description = Di pinggiran padang pasir terdapat Daratan Garam. Beberapa sumber daya dapat ditemukan disini.\n\nMusuh telah membangun gudang disini. Hancurkan inti mereka. Jangan biarkan satupun tersisa. +sector.craters.description = Air banyak terkumpul di kawah ini, sebuah peninggalan dari perang masa lalu. Klaim area ini lagi. Kumpulkan pasir. Lebur metaglass. Pompa air untuk mendinginkan turret dan bor. +sector.ruinousShores.description = Keluar dari lembah gunung, terdapat garis pantai. Sebelumnya, area ini adalah garis pertahanan pantai. Sekarang tidak banyak yang tersisa. Hanya pertahanan dasar yang tersisa, yang lain hancur berkeping keping.\nBangun kembali pertahanan di sini. Pelajari lebih banyak teknologi. +sector.stainedMountains.description = Area ini terletak di dekat pegunungan, namun belum tersentuh oleh spora.\nTambang titanium yang ada di area ini. Pelajari fungsinya.\n\nMusuh jauh lebih kuat disini. Jangan biarkan mereka meluncurkan unit yang lebih kuat. +sector.overgrowth.description = Area ini banyak ditumbuhi spora, karena dekat dengan sumber spora.\nMusuh telah membangun basis disini. Bangun unit Mace. Hancurkan mereka. Klaim apapun yang tersisa. +sector.tarFields.description = Terletak di pinggiran zona produksi minyak, diantara gunung dan padang pasir. Salah satu dari beberapa area yang memiliki cadangan minyak yang dapat digunakan.\nMeskipun ditinggalkan, area ini terdapat pertahanan musuh yang sangat kuat disekitarnya. Jangan meremehkan mereka.\n\n[lightgray]Pelajari proses penyulingan minyak jika bisa. +sector.desolateRift.description = Zona yang sangat berbahaya. Banyak sumber daya, tetapi terdapat sedikit ruang. Sangat beresiko tinggi untuk dihancurkan. Keluar secepat yang kamu bisa. Jangan terlena karena waktu antara gelombang yang lama. +sector.nuclearComplex.description = Sebuah fasilitas untuk memproduksi dan memproses thorium, telah hancur.\n[lightgray]Pelajari thorium dan cara penggunaanya.\n\nMusuh disini menyerang dalam jumlah besar, yang siap untuk menghadapi siapapun. +sector.fungalPass.description = Area yang berada di pegunungan yang lebih tinggi dengan yang lebih rendah, daerah yang dipenuhi spora. Basis kecil musuh terdapat disini.\nHancurkan itu.\nGunakan unit Dagger dan Crawler. Hancurkan dua inti mereka. settings.language = Bahasa settings.data = Data Game @@ -562,6 +566,10 @@ settings.clear.confirm = Anda yakin ingin menghapus data ini?\nWaktu tidak bisa settings.clearall.confirm = [scarlet]PERINGATAN![]\nIni akan menghapus semua data permainan, termasuk simpanan, peta, bukaan dan keybind.\nSetelah Anda menekan 'ok' permainan akan menghapus semua data dan keluar otomatis. settings.clearsaves.confirm = Anda yakin ingin menghapus semua simpanan? settings.clearsaves = Bersihkan Simpanan +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent]< Jeda > clear = Bersih banned = [scarlet]Dilarang @@ -572,13 +580,15 @@ info.title = Info error.title = [crimson]Sebuah kesalahan telah terjadi error.crashtitle = Sebuah kesalahan telah terjadi unit.nobuild = [scarlet]Unit tidak dapat membangun +lastaccessed = [lightgray]Terakhir Diakses: {0} +block.unknown = [lightgray]??? + stat.input = Masukan stat.output = Pengeluaran stat.booster = Pendorong stat.tiles = Kotak yang dibutuhkan stat.affinities = Afinitas -block.unknown = [lightgray]??? -stat.powercapacity = Kapasitas Tenaga +stat.powercapacity = Kapasitas Listrik stat.powershot = Tenaga/Tembakan stat.damage = Kerusakan stat.targetsair = Menargetkan Udara @@ -614,8 +624,30 @@ stat.inaccuracy = Jarak Melenceng stat.shots = Tembakan stat.reload = Tembakan/Detik stat.ammo = Amunisi -stat.shieldhealth = Shield Health -stat.cooldowntime = Cooldown Time +stat.shieldhealth = Darah Perisai +stat.cooldowntime = Waktu Pendinginan +stat.explosiveness = Ledakan +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Pembakar +stat.radioactivity = Radiasi +stat.heatcapacity = Kapasitas Panas +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Kecepatan +stat.buildspeed = Kecepatan Membangun +stat.minespeed = Kecepatan Menambang +stat.minetier = Kelas Penambang +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Membutuhkan Bor yang Lebih Baik bar.noresources = Sumber Daya Tidak Ditemukan @@ -627,6 +659,7 @@ bar.powerbalance = Tenaga: {0}/s bar.powerstored = Disimpan: {0}/{1} bar.poweramount = Tenaga: {0} bar.poweroutput = Pengeluaran Tenaga: {0} +bar.powerlines = Sambungan: {0}/{1} bar.items = Item: {0} bar.capacity = Kapasitas: {0} bar.unitcap = {0} {1}/{2} @@ -638,6 +671,8 @@ bar.progress = Perkembangan Pembangunan bar.input = Masukan bar.output = Keluaran +units.processorcontrol = [lightgray]Dikendalikan Prosesor + bullet.damage = [stat]{0}[lightgray] kekuatan (dmg) bullet.splashdamage = [stat]{0}[lightgray] kekuatan percikan~[stat] {1}[lightgray] kotak bullet.incendiary = [stat]membakar @@ -645,12 +680,15 @@ bullet.homing = [stat]mengejar bullet.shock = [stat]mengkejut bullet.frag = [stat]menyebar bullet.knockback = [stat]{0}[lightgray] pantulan kembali +bullet.pierce = [stat]{0}[lightgray]x tembus +bullet.infinitepierce = [stat]menembus bullet.freezing = [stat]membeku bullet.tarred = [stat]tar bullet.multiplier = [stat]{0}[lightgray]x multiplikasi amunisi bullet.reload = [stat]{0}[lightgray]x rasio menembak unit.blocks = blok +unit.blockssquared = blocks² unit.powersecond = unit tenaga/detik unit.liquidsecond = unit zat cair/detik unit.itemssecond = item/detik @@ -663,7 +701,7 @@ unit.persecond = /detik unit.perminute = /menit unit.timesspeed = x kecepatan unit.percent = % -unit.shieldhealth = shield health +unit.shieldhealth = darah perisai unit.items = item unit.thousands = rb unit.millions = jt @@ -673,7 +711,7 @@ category.power = Tenaga category.liquids = Zat Cair category.items = Item category.crafting = Pemasukan/Pengeluaran -category.shooting = Menembak +category.function = Function category.optional = Peningkatan Opsional setting.landscape.name = Kunci Pemandangan setting.shadows.name = Bayangan @@ -682,9 +720,8 @@ setting.linear.name = Filter Bergaris setting.hints.name = Petunjuk setting.flow.name = Tampilan Laju Aliran Sumber Daya setting.buildautopause.name = Jeda Otomatis saat Membangun -setting.mapcenter.name = Pusatkan Peta Otomatis Ke Pemain setting.animatedwater.name = Animasi Perairan -setting.animatedshields.name = Animasi Pelindung +setting.animatedshields.name = Animasi Perisai setting.antialias.name = Antialiasi[lightgray] (membutuhkan restart)[] setting.playerindicators.name = Indikasi Pemain setting.indicators.name = Indikasi Musuh/Teman Lain @@ -709,14 +746,13 @@ setting.blockstatus.name = Tunjukan Status Blok setting.conveyorpathfinding.name = Navigasi Pengantar Otomatis setting.sensitivity.name = Sensitivitas Kontroler setting.saveinterval.name = Jarak Menyimpan -setting.seconds = {0} Sekon +setting.seconds = {0} detik setting.blockselecttimeout.name = Waktu Habis Pemilihan Blok -setting.milliseconds = {0} milisekon +setting.milliseconds = {0} milidetik setting.fullscreen.name = Layar Penuh setting.borderlesswindow.name = Jendela tak Berbatas[lightgray] (mungkin memerlukan mengulang kembali) setting.fps.name = Tunjukkan FPS setting.smoothcamera.name = Kamera Halus -setting.blockselectkeys.name = Tunjukkan Kunci Pilih Blok setting.vsync.name = VSync setting.pixelate.name = Mode Pixel[lightgray] (menonaktifkan animasi) setting.minimap.name = Tunjukkan Peta Kecil @@ -863,6 +899,7 @@ content.item.name = Item content.liquid.name = Zat Cair content.unit.name = Unit content.block.name = Blok + item.copper.name = Tembaga item.lead.name = Timah item.coal.name = Batu Bara @@ -884,23 +921,6 @@ liquid.slag.name = Terak liquid.oil.name = Minyak liquid.cryofluid.name = Cairan Pendingin -item.explosiveness = [lightgray]Tingkat Keledakan: {0}% -item.flammability = [lightgray]Tingkat Kebakaran: {0}% -item.radioactivity = [lightgray]Tingkat Radioaktif: {0}% - -unit.health = [lightgray]Darah: {0} -unit.speed = [lightgray]Kecepatan: {0} -unit.weapon = [lightgray]Senjata: {0} -unit.itemcapacity = [lightgray]Kapasitas Item: {0} -unit.minespeed = [lightgray]Kecepatan Menambang: {0}% -unit.minepower = [lightgray]Kekuatan Menambang: {0} -unit.ability = [lightgray]Kemampuan: {0} -unit.buildspeed = [lightgray]Kecepatan Membangun: {0}% - -liquid.heatcapacity = [lightgray]Kapasitas Panas: {0} -liquid.viscosity = [lightgray]Kelekatan: {0} -liquid.temperature = [lightgray]Suhu: {0} - unit.dagger.name = Dagger unit.mace.name = Mace unit.fortress.name = Fortress @@ -938,25 +958,26 @@ unit.corvus.name = Corvus block.resupply-point.name = Titik Pemasok Ulang block.parallax.name = Parallax block.cliff.name = Cliff -block.sand-boulder.name = Batu Pasir +block.sand-boulder.name = Batu Pasir Besar block.grass.name = Rumput block.slag.name = Slag +block.space.name = Luar Angkasa block.salt.name = Garam -block.salt-wall.name = Salt Wall +block.salt-wall.name = Bukit Garam block.pebbles.name = Kerikil block.tendrils.name = Sulur -block.sand-wall.name = Sand Wall +block.sand-wall.name = Bukit Pasir block.spore-pine.name = Cemara Spora -block.spore-wall.name = Spore Wall -block.boulder.name = Boulder -block.snow-boulder.name = Snow Boulder +block.spore-wall.name = Bukit Spora +block.boulder.name = Batu Besar +block.snow-boulder.name = Batu Salju Besar block.snow-pine.name = Pinus Salju block.shale.name = Serpihan block.shale-boulder.name = Serpihan Batu Besar block.moss.name = Lumut block.shrubs.name = Semak-Semak block.spore-moss.name = Lumut Spora -block.shale-wall.name = Shale Wall +block.shale-wall.name = Bukit Serpih block.scrap-wall.name = Dinding Kepingan block.scrap-wall-large.name = Dinding Kepingan Besar 1 block.scrap-wall-huge.name = Dinding Kepingan Besar 2 @@ -986,6 +1007,7 @@ block.darksand-water.name = Air Pasir Hitam block.char.name = Bara block.dacite.name = Dasit block.dacite-wall.name = Dinding Dasit +block.dacite-boulder.name = Batu Besar Dasit block.ice-snow.name = Salju Es block.stone-wall.name = Dinding Batu block.ice-wall.name = Dinding Es @@ -1041,14 +1063,14 @@ block.distributor.name = Distributor block.sorter.name = Penyortir block.inverted-sorter.name = Penyortir terbalik block.message.name = Pesan -block.illuminator.name = Penerang -block.illuminator.description = Sebuah benda berukuran kecil, sumber penghasil cahaya. Membutuhkan tenaga untuk berfungsi. +block.illuminator.name = Lampu +block.illuminator.description = Sebuah lampu kecil untuk menerangi daerah sekitar. Perlu listrik untuk bekerja. block.overflow-gate.name = Gerbang Luap block.underflow-gate.name = Gerbang Tidak Meluap block.silicon-smelter.name = Pelebur Silikon block.phase-weaver.name = Pengrajut Phase block.pulverizer.name = Pulverisator -block.cryofluid-mixer.name = Penyampur Cairan Dingin +block.cryofluid-mixer.name = Cryofluid Mixer block.melter.name = Pencair block.incinerator.name = Penghangus block.spore-press.name = Penekan Spora @@ -1201,13 +1223,13 @@ liquid.cryofluid.description = Zat cair paling efisien untuk mendinginkan hal-ha block.message.description = Menyimpan pesan. Digunakan untuk komunikasi antar sekutu. block.graphite-press.description = Memadatkan bongkahan batu bara menjadi lempengan grafit murni. -block.multi-press.description = Versi pemadat grafit yang lebih bagus. Membutuhkan air dan tenaga untuk memproses batu bara lebih cepat dan efisien. +block.multi-press.description = Versi pemadat grafit yang lebih bagus. Membutuhkan air dan listrik untuk memproses batu bara lebih cepat dan efisien. block.silicon-smelter.description = Mengubah pasir dengan batu bara untuk memproduksi silikon. block.kiln.description = Membakar pasir dan timah menjadi kaca meta. Membutuhkan tenaga. block.plastanium-compressor.description = Memproduksi plastanium dari minyak dan titanium. block.phase-weaver.description = Memproduksi kain phase dari thorium dan banyak pasir. block.alloy-smelter.description = Memproduksi campuran logam dari titanium, timah, silikon dan tembaga. -block.cryofluid-mixer.description = Mencampur air dan titanium menjadi cairan dingin yang lebih efisien untuk pendingin. +block.cryofluid-mixer.description = Mixes water and fine titanium powder into cryofluid. Essential for thorium reactor usage. block.blast-mixer.description = Menggunakan minyak untuk membentuk pyratite menjadi senyawa peledak yang kurang mudah terbakar tetapi lebih eksplosif. block.pyratite-mixer.description = Mencampur batu bara, timah dan pasir menjadi pyratite yang sangat mudah terbakar. block.melter.description = Melelehkan kepingan menjadi terak untuk proses selanjutnya atau digunakan menara. @@ -1216,12 +1238,12 @@ block.spore-press.description = Menekan polong spora menjadi minyak. block.pulverizer.description = Menghancurkan kepingan menjadi pasir. Berguna jika tidak ada pasir disekitar. block.coal-centrifuge.description = Memadatkan minyak menjadi bongkahan batu bara. block.incinerator.description = Menghancurkan mineral atau zat cair sisa. -block.power-void.description = Menghilangkan semua tenaga yang masuk kedalamnya. Sandbox eksklusif. -block.power-source.description = Menghasilkan tenaga tak terbatas. Sandbox eksklusif. -block.item-source.description = Mengeluarkan item tak terhingga. Sandbox eksklusif. -block.item-void.description = Menghancurkan item apa saja tanpa penggunaan tenaga. Sandbox eksklusif. -block.liquid-source.description = Mengeluarkan zat cair tak terhingga. Sandbox eksklusif. -block.liquid-void.description = Menghancurkan zat cair apa saja tanpa penggunaan tenaga. Sandbox eksklusif. +block.power-void.description = Menghilangkan semua listrik yang masuk kedalamnya. Hanya untuk Sandbox. +block.power-source.description = Menghasilkan listrik tak terbatas. Hanya untuk SandboxHanya untuk Sandbox. +block.item-source.description = Mengeluarkan item tak terhingga. Hanya untuk Sandboxf. +block.item-void.description = Menghancurkan item apa saja tanpa penggunaan listrik. Hanya untuk Sandbox. +block.liquid-source.description = Mengeluarkan zat cair tak terhingga. Hanya untuk Sandbox. +block.liquid-void.description = Menghancurkan zat cair apa saja tanpa penggunaan tenaga. Hanya untuk Sandbox. block.copper-wall.description = Blok pelindung murah.\nBerguna untuk melindungi inti dan menara di beberapa gelombang awal. block.copper-wall-large.description = Blok pelindung murah.\nBerguna untuk melindungi inti dan menara di beberapa gelombang awal.\nSebesar 4 kotak. block.titanium-wall.description = Blok pelindung kekuatan yang sedang.\nMemberi perlindungan yang sedang dari musuh. @@ -1237,7 +1259,7 @@ block.surge-wall-large.description = Blok pelindung terkuat.\nMempunyai kemungki block.door.description = Pintu kecil yang bisa dibuka-tutup dengan menekannya.\nJika dibuka, musuh bisa masuk dan menembak. block.door-large.description = Pintu kecil yang bisa dibuka-tutup dengan menekannya.\nJika dibuka, musuh bisa masuk dan menembak.\nSebesar 4 blok. block.mender.description = Menyembuhkan blok di sekelilingnya secara berkala. Menjaga keutuhan pertahanan di sela-sela gelombang.\nDapat menggunakan silikon untuk meningkatkan jangkauan dan efisiensi. -block.mend-projector.description = Versi reparator yang lebih baik. Menyembuhkan blok di sekelilingnya secara berkala.\nDapat menggunakan silikon untuk meningkatkan jangkauan dan efisiensi. +block.mend-projector.description = Versi mender yang lebih baik. Menyembuhkan blok di sekelilingnya secara berkala.\nDapat menggunakan kain phase untuk meningkatkan jangkauan dan efisiensi. block.overdrive-projector.description = Menambah kecepatan bangunan sekitar, seperti bor dan pengantar. block.force-projector.description = Membentuk medan gaya berbentuk heksagon disekitar, melindungi bangunan dan unit didalamnya dari tembakan. Dapat mengalami kelebihan panas jika membendung terlalu banyak kerusakan. Bisa menggunakan cairan untuk mendinginkan. Gunakan fabrik phase untuk memperbesar jangkauan. block.shock-mine.description = Mencedera musuh yang menginjak ranjau. Hampir tak kasat mata kepada musuh. @@ -1255,8 +1277,8 @@ block.overflow-gate.description = Kombinasi antara pemisah dan penyortir yang ha block.underflow-gate.description = Kebalikan dari gerbang luap. Mengeluarkan ke depan jika kanan dan kiri tertutup. block.mass-driver.description = Blok item transportasi tercanggih. Membawa beberapa item dan menembaknya ke penggerak massal lainnya dari arah yang jauh. block.mechanical-pump.description = Pompa murah dengan pengeluaran yang pelan, tetapi tidak mengkonsumsi tenaga. -block.rotary-pump.description = Pompa canggih yang kecepatannya dua kali lipat jika menggunakan tenaga. -block.thermal-pump.description = Pompa Tercanggih. +block.rotary-pump.description = Pompa listrik yang dua kali lebih cepat daripada pompa mekanik. +block.thermal-pump.description = Pompa listrik yang mempompa cairan tercepat. block.conduit.description = Blok transportasi zat cair umum. Bekerja seperti pengantar, tetapi untuk zat cair. block.pulse-conduit.description = Blok transportasi zat cair canggih. Memindahkan dan menyimpan zat cair lebih cepat dan banyak daripada saluran biasa. block.plated-conduit.description = Sama seperti pengantar berlapis baja, tetapi menuju ke zat cair. Lebih sedikit bocor. @@ -1269,39 +1291,39 @@ block.power-node.description = Membawa tenaga ke tiang tersambung. hingga empat block.power-node-large.description = Mempunyai radius lebih besar dari tiang listrik biasa dan bisa menyambung hingga enam sumber listrik, sambungan atau tiang lainnya. block.surge-tower.description = Sebuah menara listrik dengan jangkauan sangat jauh tetapi sambungan yang sedikit. block.diode.description = Tenaga baterai dapat mengalir hanya dari satu arah, tetapi hanya jika tenaga di sebelah lebih sedikit. -block.battery.description = Menyimpan tenaga jika ada kelimpahan dan memberikan tenaga jika ada kekurangan, asalkan ada kapasitas tersisa. -block.battery-large.description = Menyimpan lebih banyak tenaga daripada baterai biasa. -block.combustion-generator.description = Menghasilkan tenaga dengan membakar minyak atau bahan bakar. -block.thermal-generator.description = Menghasilkan tenaga disaat ditaruh di lokasi yang panas. -block.steam-generator.description = Lebih efisien daripada generator pembakar, tetapi membutuhkan tambahan air. -block.differential-generator.description = Menghasilkan banyak sekali tenaga. Memanfaatkan perbedaan suhu dingin cairan pendingin dan suhu panas pyratite. -block.rtg-generator.description = Generator yang tidak membutuhkan pendiginan tetapi lebih memberi sedikit tenaga daripada reaktor thorium. -block.solar-panel.description = Menghasilkan jumlah tenaga kecil dari matahari. -block.solar-panel-large.description = Menghasilkan lebih banyak tenaga dari panel surya biasa, tapi lebih mahal untuk dibangun. -block.thorium-reactor.description = Menghasilkan tenaga yang besar dari konsumsi thorium. Membutuhkan pendinginan konstan. Akan meledak jika tidak cukup pendingin . Pengeluaran tenaga tergantung kepenuhan. -block.impact-reactor.description = Sebuah generator yang lebih maju, dapat menghasilkan tenaga dengan jumlah yang sangat banyak. Memerlukan tenaga untuk menyelakan reaktor terlebih dahulu. +block.battery.description = Menyimpan listrik ketika generator menghasilkan lebih banyak listrik daripada yang dibutuhkan dan memberikan listrik ketika generator tidak dapat mencukupi kebutuhan listrik, jika masih ada listrik tersisa didalamnya. +block.battery-large.description = Menyimpan lebih banyak listrik daripada baterai biasa. +block.combustion-generator.description = Menghasilkan listrik dengan membakar minyak atau bahan bakar. +block.thermal-generator.description = Menghasilkan listrik jika dibangun diatas blok yang panas. +block.steam-generator.description = Menghasilkan listrik dari uap. Lebih efesien daripada generator pembakar. +block.differential-generator.description = Menghasilkan listrik dalam jumlah banyak. Memanfaatkan perbedaan suhu dingin cairan pendingin dan suhu panas pyratite. +block.rtg-generator.description = Generator yang tidak membutuhkan cairan pendingin tetapi menghasilkan listrik yang lebih sedikit daripada reaktor thorium. +block.solar-panel.description = Menghasilkan listrik dalam jumlah sedikit dari sinar matahari. +block.solar-panel-large.description = Menghasilkan lebih banyak listrik daripada panel surya biasa, tapi lebih mahal untuk dibangun. +block.thorium-reactor.description = Menghasilkan listrik dalam jumlah banyak dari konsumsi thorium. Membutuhkan cairan pendingin. Akan meledak jika tidak cukup pendingin. Akan menghasilkan listrik dalam jumlah maksimum jika penuh. +block.impact-reactor.description = Sebuah generator yang lebih maju, dapat menghasilkan listrik dengan jumlah yang sangat banyak. Diperlukan listrik untuk menyalakan reaktor terlebih dahulu. block.mechanical-drill.description = Bor murah. Saat ditaruh ditempat yang sesuai, mengeluarkan item dengan pelan tanpa batas. block.pneumatic-drill.description = Bor lebih cepat dari bor mekanik dan bisa memproses bahan lebih keras dengan menggunakan tekanan udara. -block.laser-drill.description = Mengebor lebih cepat lewat teknologi laser, tapi membutuhkan tenaga. Bisa menambang thorium dengan bor ini. -block.blast-drill.description = Bor tercanggih. Membutuhkan banyak tenaga. +block.laser-drill.description = Mengebor lebih cepat lewat teknologi laser, tapi membutuhkan listrik. Bisa menambang thorium dengan bor ini. +block.blast-drill.description = Bor yang paling besar. Membutuhkan banyak listrik untuk bekerja. block.water-extractor.description = Mengekstrak air dari tanah. Gunakan jika tidak ada sumber air disekitar. block.cultivator.description = Membudidaya spora kecil menjadi polong siap diolah. -block.oil-extractor.description = Menggunakan tenaga cukup besar untuk mengekstrak minyak dari pasir. Gunakan jika tidak ada sumber minyak disekitar. -block.core-shard.description = Versi pertama dari pengulangan kapsul inti. Jika hancur, Semua kontak dengan daerah akan hilang. Jangan biarkan ini terjadi. -block.core-foundation.description = Versi kedua dari intk. Lebih kuat. Menyimpan banyak sumber daya. -block.core-nucleus.description = Versi ketiga dan pengulangan terakhir dari kapsul inti. Sangkat kuat. Menyimpan sangat banyak sumberr daya. -block.vault.description = Menyimpan semua tipe item berkuantitas besar. [lightgray] pembongkar muatan[] bisa digunakan untuk mengeluarkan item dari gudang. +block.oil-extractor.description = Menggunakan listrik yang cukup besar untuk mengekstrak minyak dari pasir. Gunakan jika tidak ada sumber minyak disekitar. +block.core-shard.description = Versi pertama dari peluncuran kapsul inti. Jika hancur, Semua kontak dengan daerah akan hilang. Jangan biarkan ini terjadi. +block.core-foundation.description = Versi kedua dari intk. Lebih kuat. Dapat menyimpan lebih banyak sumber daya. +block.core-nucleus.description = Versi ketiga dan pengulangan terakhir dari kapsul inti. Sangkat kuat. Penyimpanan sumber daya terbesar. +block.vault.description = Menyimpan semua tipe item dalam jumlah besar. [lightgray] pembongkar muatan[] bisa digunakan untuk mengeluarkan item dari gudang. block.container.description = Menyimpan semua tipe item. [lightgray] pembongkar muatan[] bisa digunakan untuk mengeluarkan item dari kontainer. block.unloader.description = Mengeluarkan item dari kontainer, gudang atau inti kedalam pengantar atau langsung ke blok yang dituju. Tipe item yang dimuat bisa diganti dengan mengetuk pembongkar muatan. block.launch-pad.description = Meluncurkan beberapa item tanpa meninggalkan tempat. block.launch-pad-large.description = Sebuah alas luncur yang ditingkatkan. Menyimpan lebih banyak item dan lebih sering meluncur. block.duo.description = menara yang murah nan kecil. Berguna melawan unit darat. -block.scatter.description = Menara Anti-Udara berukuran sedang. Melempar gumpalan timah atau kepingan ke unit musuh. +block.scatter.description = Menara Anti-Udara berukuran sedang. Menembak gumpalan timah atau kepingan ke unit musuh. block.scorch.description = Membakar musuh yang dekat. Sangat efektif di jarak dekat. block.hail.description = Menara meriam kecil. -block.wave.description = Menara penembak beruntun ukuran sedang yang menembak gelembung air. +block.wave.description = Menara penembak beruntun ukuran sedang yang menembak gelembung cairan. block.lancer.description = Menara ukuran sedang yang menembak sinar listrik. -block.arc.description = Menara kecil jarak dekat ini menembak listrik secara acak ke arah musuh. +block.arc.description = Menara kecil jarak dekat ini menembak petir secara acak ke arah musuh. block.swarmer.description = Menara ukuran sedang yang menembak misil bertubi-tubi. block.salvo.description = Menara ukuran sedang yang menembak pelurunya secara serentak. block.fuse.description = Menara besar ini menembak sinar pendek yang kuat. @@ -1310,4 +1332,4 @@ block.cyclone.description = Menara penembak beruntun besar. block.spectre.description = Menara besar yang menembak dua peluru kuat sekaligus. block.meltdown.description = Menara besar ini menembak sinar panjang yang kuat. block.repair-point.description = Terus menerus memulihkan unit terluka disekitar. -block.segment.description = Merusakkan dan menghancurkan proyektil yang datang. Proyektil laser tidak akan ditargetkan. \ No newline at end of file +block.segment.description = Merusakkan dan menghancurkan proyektil yang datang. Proyektil energi akan diabaikan. diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index 5fc3245ed6..a072e060c4 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -55,6 +55,7 @@ schematic.saved = Schematica salvata. schematic.delete.confirm = Questa schematica sarà cancellata definitivamente. schematic.rename = Rinomina Schematica schematic.info = {0}x{1}, {2} blocchi +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = Ondate Sconfitte:[accent] {0} stat.enemiesDestroyed = Nemici Distrutti:[accent] {0} @@ -100,7 +101,6 @@ done = Fatto feature.unsupported = Il tuo dispositivo non supporta questa funzione. mods.alphainfo = Tieni a mente che queste mods sono in alpha e[scarlet] possono contenere molti bug[]. Segnala tutti i problemi che trovi sulla pagina GitHub o sul server Discord di Mindustry. -mods.alpha = [accent](Alpha) mods = Mods mods.none = [lightgray]Nessuna mod trovata! mods.guide = Guida per il modding @@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] per selezionare+copiare pausebuilding = [accent][[{0}][] per smettere di costruire resumebuilding = [scarlet][[{0}][] per riprendere a costruire wave = [accent]Ondata {0} +wave.cap = [accent]Wave {0}/{1} wave.waiting = [lightgray]Ondata tra {0} wave.waveInProgress = [lightgray]Ondata in corso waiting = In attesa... waiting.players = Attendendo giocatori... wave.enemies = [lightgray]{0} Nemici Rimasti wave.enemy = [lightgray]{0} Nemico Rimasto +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = Carica immagine saveimage = Salva Immagine unknown = Sconosciuto @@ -328,6 +331,7 @@ editor.generation = Generazione: editor.ingame = Modifica in Gioco editor.publish.workshop = Pubblica nel Workshop editor.newmap = Nuova Mappa +editor.center = Center workshop = Workshop waves.title = Ondate waves.remove = Rimuovi @@ -416,6 +420,7 @@ filters.empty = [lightgray]Nessun filtro! Aggiungine uno cliccando il tasto sott filter.distort = Modifica filter.noise = Rumore filter.enemyspawn = Seleziona Spawn Nemico +filter.spawnpath = Path To Spawn filter.corespawn = Seleziona Nucleo filter.median = Mediana filter.oremedian = Mediana Minerali @@ -440,6 +445,7 @@ filter.option.amount = Quantità filter.option.block = Blocco filter.option.floor = Terreno filter.option.flooronto = Terreno Mirato +filter.option.target = Target filter.option.wall = Muro filter.option.ore = Minerale filter.option.floor2 = Terreno Secondario @@ -471,15 +477,9 @@ requirement.wave = Raggiungi l'ondata {0} in {1} requirement.core = Distruggi il Nucleo Nemico in {0} requirement.research = Research {0} requirement.capture = Capture {0} -resume = Riprendi Zona:\n[lightgray]{0} bestwave = [lightgray]Ondata Migliore: {0} -launch = < DECOLLARE > launch.text = Launch -launch.title = Decollo Riuscito! -launch.next = [lightgray]nuova opportunità all'ondata {0} -launch.unable2 = [scarlet]IMPOSSIBILE DECOLLARE![] -launch.confirm = Questo trasporterà tutte le risorse nel tuo Nucleo.\nNon riuscirai a ritornare in questa base. -launch.skip.confirm = Se salti adesso non riuscirai a decollare fino alle ondate successive +research.multiplayer = Only the host can research items. uncover = Scopri configure = Configura Equipaggiamento loadout = Loadout @@ -512,6 +512,7 @@ weather.rain.name = Rain weather.snow.name = Snow weather.sandstorm.name = Sandstorm weather.sporestorm.name = Sporestorm +weather.fog.name = Fog sectors.unexplored = [lightgray]Unexplored sectors.resources = Resources: @@ -521,6 +522,11 @@ sectors.resume = Resume sectors.launch = Launch sectors.select = Select sectors.nonelaunch = [lightgray]none (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = Ground Zero sector.craters.name = The Craters @@ -560,6 +566,10 @@ settings.clear.confirm = Sei sicuro di voler cancellare i dati?\nQuesta operazio settings.clearall.confirm = [scarlet]ATTENZIONE![]\nQuesto cancellerà tutti i dati, inclusi salvataggi, mappe, oggetti sbloccati ed impostazioni.\nDopo aver premuto su 'ok' il gioco eliminerà i dati e si chiuderà automaticamente. settings.clearsaves.confirm = Are you sure you want to clear all your saves? settings.clearsaves = Clear Saves +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent]< In Pausa > clear = Pulisci banned = [scarlet]Bandito @@ -570,12 +580,14 @@ info.title = Info error.title = [crimson]Si è verificato un errore error.crashtitle = Si è verificato un errore unit.nobuild = [scarlet]L'unità non può costruire +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]??? + stat.input = Ingresso stat.output = Uscita stat.booster = Potenziamenti stat.tiles = Blocchi Richiesti stat.affinities = Affinità -block.unknown = [lightgray]??? stat.powercapacity = Capacità Energetica stat.powershot = Danno/Colpo stat.damage = Danno @@ -594,6 +606,7 @@ stat.powerconnections = Connessioni Massime stat.poweruse = Utilizzo Energia stat.powerdamage = Energia/Danno stat.itemcapacity = Capacità +stat.memorycapacity = Memory Capacity stat.basepowergeneration = Generazione Energia di Base stat.productiontime = Tempo di Produzione stat.repairtime = Tempo di Riparazione Completa @@ -613,6 +626,28 @@ stat.reload = Ricarica stat.ammo = Munizioni stat.shieldhealth = Shield Health stat.cooldowntime = Cooldown Time +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Miglior Trivella Richiesta bar.noresources = Missing Resources @@ -624,6 +659,7 @@ bar.powerbalance = Energia: {0}/s bar.powerstored = Immagazzinata: {0}/{1} bar.poweramount = Energia: {0} bar.poweroutput = Energia in Uscita: {0} +bar.powerlines = Connections: {0}/{1} bar.items = Oggetti: {0} bar.capacity = Capacità: {0} bar.unitcap = {0} {1}/{2} @@ -635,6 +671,8 @@ bar.progress = Progresso Costruzione bar.input = Entrata bar.output = Uscita +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray] danno bullet.splashdamage = [stat]{0}[lightgray] danno ad area ~[stat] {1}[lightgray] blocchi bullet.incendiary = [stat]incendiario @@ -642,12 +680,15 @@ bullet.homing = [stat]autoguidato bullet.shock = [stat]stordente bullet.frag = [stat]a frammentazione bullet.knockback = [stat]{0}[lightgray] contraccolpo +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat]congelante bullet.tarred = [stat]viscoso bullet.multiplier = [stat]{0}[lightgray]x moltiplicatore munizioni bullet.reload = [stat]{0}[lightgray]x ricarica unit.blocks = blocchi +unit.blockssquared = blocks² unit.powersecond = unità energia/s unit.liquidsecond = unità liquide/s unit.itemssecond = oggetti/s @@ -670,7 +711,7 @@ category.power = Energia category.liquids = Liquidi category.items = Oggetti category.crafting = Produzione -category.shooting = Potenza di fuoco +category.function = Function category.optional = Miglioramenti Opzionali setting.landscape.name = Visuale Orizontale setting.shadows.name = Ombre @@ -679,7 +720,6 @@ setting.linear.name = Filtro Lineare setting.hints.name = Suggerimenti setting.flow.name = Visualizza Portata Nastri/Condotti setting.buildautopause.name = Pausa Automatica nella Costruzione -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = Fluidi Animati setting.animatedshields.name = Scudi Animati setting.antialias.name = Antialias[lightgray] (richiede riavvio)[] @@ -713,7 +753,6 @@ setting.fullscreen.name = Schermo Intero setting.borderlesswindow.name = Finestra Senza Bordi[lightgray] (potrebbe richiedere il riavvio) setting.fps.name = Mostra FPS e Ping setting.smoothcamera.name = Smooth Camera -setting.blockselectkeys.name = Mostra Tasto di Selezione del Blocco setting.vsync.name = VSync setting.pixelate.name = Effetto Pixel[lightgray] (disabilita le animazioni) setting.minimap.name = Mostra Minimappa @@ -822,6 +861,7 @@ mode.custom = Regole Personalizzate rules.infiniteresources = Risorse Infinite rules.reactorexplosions = Esplosioni Reattore +rules.schematic = Schematics Allowed rules.wavetimer = Timer Ondate rules.waves = Ondate rules.attack = Modalità Attacco @@ -847,6 +887,7 @@ rules.title.unit = Unità rules.title.experimental = Sperimentale rules.title.environment = Environment rules.lighting = Illuminazione +rules.enemyLights = Enemy Lights rules.fire = Fire rules.explosions = Block/Unit Explosion Damage rules.ambientlight = Illuminazione\nAmbientale @@ -858,6 +899,7 @@ content.item.name = Oggetti content.liquid.name = Liquidi content.unit.name = Unità content.block.name = Blocchi + item.copper.name = Rame item.lead.name = Piombo item.coal.name = Carbone @@ -879,23 +921,6 @@ liquid.slag.name = Scoria liquid.oil.name = Petrolio liquid.cryofluid.name = Criofluido -item.explosiveness = [lightgray]Esplosività: {0} -item.flammability = [lightgray]Infiammabilità: {0} -item.radioactivity = [lightgray]Radioattività: {0} - -unit.health = [lightgray]Salute: {0} -unit.speed = [lightgray]Velocità: {0} -unit.weapon = [lightgray]Armi: {0} -unit.itemcapacity = [lightgray]Capacità Oggetti: {0} -unit.minespeed = [lightgray]Velocità di Scavo: {0}% -unit.minepower = [lightgray]Potenza di Scavo: {0} -unit.ability = [lightgray]Abilità: {0} -unit.buildspeed = [lightgray]Velocità di Costruzione: {0}% - -liquid.heatcapacity = [lightgray]Capacità Termica: {0} -liquid.viscosity = [lightgray]Viscosità: {0} -liquid.temperature = [lightgray]Temperatura: {0} - unit.dagger.name = Drone Pugnalatore unit.mace.name = Mace unit.fortress.name = Fortezza @@ -936,6 +961,7 @@ block.cliff.name = Scogliera block.sand-boulder.name = Masso di Sabbia block.grass.name = Erba block.slag.name = Scoria +block.space.name = Space block.salt.name = Sale block.salt-wall.name = Salt Wall block.pebbles.name = Ciottoli @@ -981,6 +1007,7 @@ block.darksand-water.name = Acqua Sabbiosa Scura block.char.name = Carbone block.dacite.name = Dacite block.dacite-wall.name = Dacite Wall +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = Neve Ghiacciata block.stone-wall.name = Stone Wall block.ice-wall.name = Ice Wall @@ -1075,6 +1102,7 @@ block.power-source.name = Fonte Infinita (energia) block.unloader.name = Scaricatore block.vault.name = Deposito block.wave.name = Idrogetto +block.tsunami.name = Tsunami block.swarmer.name = Sciamatore block.salvo.name = Cannone Leggero block.ripple.name = Cannone Pesante @@ -1114,6 +1142,7 @@ block.arc.name = Arco Elettrico block.rtg-generator.name = Generatore RTG block.spectre.name = Spettro block.meltdown.name = Fusione +block.foreshadow.name = Foreshadow block.container.name = Contenitore block.launch-pad.name = Ascensore Spaziale block.launch-pad-large.name = Ascensore Spaziale Avanzato @@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor block.logic-display.name = Logic Display block.large-logic-display.name = Large Logic Display block.memory-cell.name = Memory Cell +block.memory-bank.name = Memory Bank team.blue.name = blu team.crux.name = rosso @@ -1302,4 +1332,4 @@ block.cyclone.description = Una grande torretta a fuoco rapido. block.spectre.description = Una grande torretta che spara due potenti proiettili contemporaneamente. block.meltdown.description = Una grande torretta che spara un potente laser a lungo raggio. block.repair-point.description = Cura continuamente l'unità danneggiata più vicina. -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. \ No newline at end of file +block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index 68c766e79b..16c05bc37a 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -55,6 +55,7 @@ schematic.saved = 設計図を保存しました。 schematic.delete.confirm = この設計図は完全に削除されます。よろしいですか schematic.rename = 設計図の名前を変更する。 schematic.info = {1}x{0}, {2} ブロック +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = 防衛したウェーブ:[accent] {0} stat.enemiesDestroyed = 敵に破壊された数:[accent] {0} @@ -100,7 +101,6 @@ done = 完了 feature.unsupported = あなたのデバイスはこの機能をサポートしていません。 mods.alphainfo = Mods機能は実験的なものです。[scarlet] エラーが含まれている可能性があります[]。\n 問題を発見した場合は Mindustry GitHubに報告してください。 -mods.alpha = [accent](Alpha) mods = Mods mods.none = [lightgray]Modが見つかりませんでした! mods.guide = Mod作成ガイド @@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] 選択し、コピーする pausebuilding = [accent][[{0}][] 建築を一時的に中断する resumebuilding = [scarlet][[{0}][] 建築を再開する wave = [accent]ウェーブ {0} +wave.cap = [accent]Wave {0}/{1} wave.waiting = [lightgray]次のウェーブまで {0} 秒 wave.waveInProgress = [lightgray]ウェーブ進行中 waiting = [lightgray]待機中... waiting.players = プレイヤーを待っています... wave.enemies = [lightgray]敵は残り {0} 体 wave.enemy = [lightgray]敵は残り {0} 体 +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = 画像を読み込む saveimage = 画像を保存 unknown = 不明 @@ -328,6 +331,7 @@ editor.generation = 生成: editor.ingame = ゲーム内で編集する editor.publish.workshop = ワークショップで公開 editor.newmap = 新しいマップ +editor.center = Center workshop = ワークショップ waves.title = ウェーブ waves.remove = 削除 @@ -416,6 +420,7 @@ filters.empty = [lightgray]フィルターが設定されていません! 下の filter.distort = ゆがみ filter.noise = ノイズ filter.enemyspawn = 敵スポーンセレクト +filter.spawnpath = Path To Spawn filter.corespawn = コアセレクト filter.median = メディアン filter.oremedian = メディアン (鉱石) @@ -440,6 +445,7 @@ filter.option.amount = 量 filter.option.block = ブロック filter.option.floor = 地面 filter.option.flooronto = 対象の地面 +filter.option.target = Target filter.option.wall = 壁 filter.option.ore = 鉱石 filter.option.floor2 = 2番目の地面 @@ -471,15 +477,9 @@ requirement.wave = {1} でウェーブ {0} に到達 requirement.core = {0} の敵のコアを破壊 requirement.research = Research {0} requirement.capture = Capture {0} -resume = 再開:\n[lightgray]{0} bestwave = [lightgray]最高ウェーブ: {0} -launch = < 発射 > launch.text = Launch -launch.title = 発射成功 -launch.next = [lightgray]次は ウェーブ {0} で発射可能です。 -launch.unable2 = [scarlet]発射できません。[] -launch.confirm = すべての資源をコアに搬入し、発射します。\nもうこの基地には戻ってくることはできません。 -launch.skip.confirm = スキップすると、次の発射可能なウェーブまで発射できません。 +research.multiplayer = Only the host can research items. uncover = 開放 configure = 積み荷の設定 loadout = Loadout @@ -512,6 +512,7 @@ weather.rain.name = Rain weather.snow.name = Snow weather.sandstorm.name = Sandstorm weather.sporestorm.name = Sporestorm +weather.fog.name = Fog sectors.unexplored = [lightgray]Unexplored sectors.resources = Resources: @@ -521,6 +522,11 @@ sectors.resume = Resume sectors.launch = Launch sectors.select = Select sectors.nonelaunch = [lightgray]none (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = Ground Zero sector.craters.name = The Craters @@ -560,6 +566,10 @@ settings.clear.confirm = データを削除してもよろしいですか?\nこ settings.clearall.confirm = [scarlet]警告![]\nこれはすべてのデータが削除されます。これにはセーブデータ、マップ、アンロック、キーバインドが含まれます。\n「ok」 を押すと、すべてのデータが削除され、自動的に終了します。 settings.clearsaves.confirm = Are you sure you want to clear all your saves? settings.clearsaves = Clear Saves +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent]< ポーズ > clear = 消去 banned = [scarlet]使用禁止 @@ -570,12 +580,14 @@ info.title = 情報 error.title = [crimson]エラーが発生しました error.crashtitle = エラーが発生しました unit.nobuild = [scarlet]ユニットを構築できません +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]??? + stat.input = 搬入 stat.output = 搬出 stat.booster = ブースト stat.tiles = 必要なタイル stat.affinities = 親和性 -block.unknown = [lightgray]??? stat.powercapacity = 電力容量 stat.powershot = 電力/ショット stat.damage = ダメージ @@ -594,6 +606,7 @@ stat.powerconnections = 最大接続数 stat.poweruse = 電力使用量 stat.powerdamage = 電力/ダメージ stat.itemcapacity = アイテム容量 +stat.memorycapacity = Memory Capacity stat.basepowergeneration = 基本発電量 stat.productiontime = 製造速度 stat.repairtime = ブロックの完全修復速度 @@ -613,6 +626,28 @@ stat.reload = リロード速度 stat.ammo = 弾薬 stat.shieldhealth = Shield Health stat.cooldowntime = Cooldown Time +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = より高性能なドリルを使用してください bar.noresources = Missing Resources @@ -624,6 +659,7 @@ bar.powerbalance = 電力均衡: {0}/秒 bar.powerstored = 総蓄電量: {0}/{1} bar.poweramount = 蓄電量: {0} bar.poweroutput = 発電量: {0} +bar.powerlines = Connections: {0}/{1} bar.items = アイテム: {0} bar.capacity = 容量: {0} bar.unitcap = {0} {1}/{2} @@ -635,6 +671,8 @@ bar.progress = 建設状況 bar.input = 入力 bar.output = 出力 +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray] ダメージ bullet.splashdamage = [stat]{0}[lightgray] 範囲ダメージ 約[stat] {1}[lightgray] タイル bullet.incendiary = [stat]焼夷弾 @@ -642,12 +680,15 @@ bullet.homing = [stat]追尾弾 bullet.shock = [stat]電撃 bullet.frag = [stat]爆発弾 bullet.knockback = [stat]{0}[lightgray] ノックバック +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat]凍結 bullet.tarred = [stat]タール弾 bullet.multiplier = [stat]弾薬 {0}[lightgray]倍 bullet.reload = [stat]リロード速度 {0}[lightgray]倍 unit.blocks = ブロック +unit.blockssquared = blocks² unit.powersecond = 電力/秒 unit.liquidsecond = 液体/秒 unit.itemssecond = アイテム/秒 @@ -670,7 +711,7 @@ category.power = 電力 category.liquids = 液体 category.items = アイテム category.crafting = 搬入/搬出 -category.shooting = ショット +category.function = Function category.optional = 強化オプション setting.landscape.name = 横画面で固定 setting.shadows.name = 影 @@ -679,7 +720,6 @@ setting.linear.name = リニアフィルター setting.hints.name = ヒント setting.flow.name = 資源流通量の表示 setting.buildautopause.name = オートポーズビルディング -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = 流体のアニメーション setting.animatedshields.name = シールドのアニメーション setting.antialias.name = アンチエイリアス[lightgray] (再起動が必要)[] @@ -713,7 +753,6 @@ setting.fullscreen.name = フルスクリーン setting.borderlesswindow.name = 境界の無いウィンドウ[lightgray] (再起動が必要になる場合があります) setting.fps.name = FPSを表示 setting.smoothcamera.name = Smooth Camera -setting.blockselectkeys.name = ブロック選択キーを表示 setting.vsync.name = 垂直同期 setting.pixelate.name = ピクセル化[lightgray] (アニメーションが無効化されます) setting.minimap.name = ミニマップを表示 @@ -822,6 +861,7 @@ mode.custom = カスタムルール rules.infiniteresources = 資源の無限化 rules.reactorexplosions = リアクターの爆発 +rules.schematic = Schematics Allowed rules.wavetimer = ウェーブの自動進行 rules.waves = ウェーブ rules.attack = アタックモード @@ -847,6 +887,7 @@ rules.title.unit = ユニット rules.title.experimental = 実験的なゲームプレイ rules.title.environment = Environment rules.lighting = 霧 +rules.enemyLights = Enemy Lights rules.fire = Fire rules.explosions = Block/Unit Explosion Damage rules.ambientlight = 霧の色 @@ -858,6 +899,7 @@ content.item.name = アイテム content.liquid.name = 液体 content.unit.name = ユニット content.block.name = ブロック + item.copper.name = 銅 item.lead.name = 鉛 item.coal.name = 石炭 @@ -879,23 +921,6 @@ liquid.slag.name = スラグ liquid.oil.name = 石油 liquid.cryofluid.name = 冷却水 -item.explosiveness = [lightgray]爆発性: {0}% -item.flammability = [lightgray]可燃性: {0}% -item.radioactivity = [lightgray]放射能: {0}% - -unit.health = [lightgray]耐久値: {0} -unit.speed = [lightgray]速度: {0} -unit.weapon = [lightgray]武器: {0} -unit.itemcapacity = [lightgray]アイテム容量: {0} -unit.minespeed = [lightgray]採掘速度: {0}% -unit.minepower = [lightgray]採掘性能: {0} -unit.ability = [lightgray]能力: {0} -unit.buildspeed = [lightgray]建築速度: {0}% - -liquid.heatcapacity = [lightgray]熱容量: {0} -liquid.viscosity = [lightgray]粘度: {0} -liquid.temperature = [lightgray]温度: {0} - unit.dagger.name = ダガー unit.mace.name = Mace unit.fortress.name = フォートレス @@ -936,6 +961,7 @@ block.cliff.name = 崖 block.sand-boulder.name = 巨大な礫 block.grass.name = 草 block.slag.name = スラグ +block.space.name = Space block.salt.name = 岩塩氷河 block.salt-wall.name = Salt Wall block.pebbles.name = 小石 @@ -981,6 +1007,7 @@ block.darksand-water.name = 黒い砂で濁った水 block.char.name = 焦げ跡 block.dacite.name = Dacite block.dacite-wall.name = Dacite Wall +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = 雪氷 block.stone-wall.name = Stone Wall block.ice-wall.name = Ice Wall @@ -1075,6 +1102,7 @@ block.power-source.name = 無限電源 block.unloader.name = 搬出機 block.vault.name = ボールト block.wave.name = ウェーブ +block.tsunami.name = Tsunami block.swarmer.name = スウォーマー block.salvo.name = サルボー block.ripple.name = リップル @@ -1114,6 +1142,7 @@ block.arc.name = アーク block.rtg-generator.name = RTG発電機 block.spectre.name = スペクター block.meltdown.name = メルトダウン +block.foreshadow.name = Foreshadow block.container.name = コンテナー block.launch-pad.name = 発射台 block.launch-pad-large.name = 大型発射台 @@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor block.logic-display.name = Logic Display block.large-logic-display.name = Large Logic Display block.memory-cell.name = Memory Cell +block.memory-bank.name = Memory Bank team.blue.name = ブルー team.crux.name = レッド @@ -1302,4 +1332,4 @@ block.cyclone.description = 大型の連射型ターレットです。 block.spectre.description = 一度に2発の強力な弾を放つ大型のターレットです。 block.meltdown.description = 強力な長距離攻撃が可能な大型のターレットです。 block.repair-point.description = 近くの負傷したユニットを修復します。 -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. \ No newline at end of file +block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index 82bb299642..0cc0f1d3b7 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -12,7 +12,7 @@ link.itch.io.description = PC 다운로드가 있는 itch.io 페이지 link.google-play.description = Google Play 스토어 목록 link.f-droid.description = F-Droid 카탈로그 목록 link.wiki.description = 공식 Mindustry 위키 -link.suggestions.description = 새로운 기능 제안 +link.suggestions.description = 새 기능 제안하기 linkfail = 링크를 열지 못했습니다!\nURL이 클립보드에 복사되었습니다. screenshot = 스크린 샷이 {0} 에 저장되었습니다. screenshot.invalid = 맵이 너무 커서 스크린샷에 사용될 메모리가 부족할 수 있습니다. @@ -20,8 +20,8 @@ gameover = 게임 오버 gameover.pvp = [accent]{0}[] 팀이 승리했습니다! highscore = [accent]새로운 최고 점수! copied = 복사됨. -indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[]. -indev.notready = This part of the game isn't ready yet +indev.popup = 현재 [accent]v6[] 버전은 [accent]알파[] 단계입니다.\n[lightgray]이 말은:[]\n- [scarlet]캠페인이 아직 완전히 개발되지 않음[]\n- 몇몇 컨텐츠가 빠짐\n- 대부분의 [scarlet]유닛 AI[]가 작동하지 않음\n- 많은 유닛들이 아직 미완성\n- 보이는 것은 모두 바뀌거나 제거될 수 있음\n\n[accent]Github[] 에서 버그 또는 강제종료 오류를 신고 해 주세요. +indev.notready = 이 부분은 아직 준비가 되지 않았습니다. load.sound = 소리 load.map = 맵 @@ -55,8 +55,9 @@ schematic.saved = 설계도 저장됨. schematic.delete.confirm = 이 설계도는 완전히 삭제될 것입니다. schematic.rename = 설계도 이름 바꾸기 schematic.info = {0}x{1}, {2} 블록 +schematic.disabled = [scarlet]설계도 비활성화됨[]\n이 [accent]맵[] 또는 [accent]서버[] 에서는 설계도를 사용할 수 없습니다. -stat.wave = 패배한 웨이브:[accent] {0} +stat.wave = 패배한 단계:[accent] {0} stat.enemiesDestroyed = 파괴된 적:[accent] {0} stat.built = 지어진 건물: [accent]{0} stat.destroyed = 파괴된 건물: [accent]{0} @@ -71,7 +72,7 @@ level.highscore = 최고 점수: [accent]{0} level.select = 맵 선택 level.mode = 게임 모드: coreattack = < 코어가 공격 받고 있습니다! > -nearpoint = [[ [scarlet]낙하 지점에서 나가세요[] ]\n적 낙하 시 낙하 지점 내 건물 및 유닛 파괴 +nearpoint = [[ [scarlet]즉시 스폰지점에서 떠나세요[] ]\n전멸 임박 database = 코어 데이터베이스 savegame = 게임 저장 loadgame = 게임 불러오기 @@ -100,7 +101,6 @@ done = 완료 feature.unsupported = 기기가 이 기능을 지원하지 않습니다. mods.alphainfo = 현재 모드는 알파이며, [scarlet]버그가 많을 수 있습니다[].\n발견한 문제는 Mindustry Github 또는 Discord에 보고하세요. -mods.alpha = [accent](알파) mods = 모드 mods.none = [lightgray]모드를 찾을 수 없습니다! mods.guide = 모드 제작 가이드 @@ -115,7 +115,7 @@ mod.disable = 비활성화 mod.content = 콘텐츠: mod.delete.error = 모드를 삭제할 수 없습니다. 파일이 사용 중일 수 있습니다. mod.requiresversion = [scarlet]필요한 최소 게임 버전: [accent]{0} -mod.outdated = [scarlet]V6 전용이 아닌 모드 (minGameVersion: 105 누락) +mod.outdated = [scarlet]V6 버전과 호환되지 않음 (minGameVersion: 105 안됨) mod.missingdependencies = [scarlet]누락된 요구 모드: {0} mod.erroredcontent = [scarlet]콘텐츠 오류 mod.errors = 콘텐츠를 로드하는 동안 오류가 발생함. @@ -139,8 +139,8 @@ mod.scripts.disable = 이 기기는 스크립트가 있는 모드를 지원하 about.button = 정보 name = 이름: noname = 먼저 [accent]플레이어 이름[]을 설정하세요. -planetmap = Planet Map -launchcore = Launch Core +planetmap = 행성 지도 +launchcore = 코어 출격 filename = 파일 이름: unlocked = 새로운 콘텐츠가 해금되었습니다! completed = [accent]완료됨 @@ -148,8 +148,8 @@ techtree = 연구 기록 research.list = [lightgray]연구: research = 연구 researched = [lightgray]{0} 연구 완료. -research.progress = {0}% 완료 -players = {0} 플레이어들 +research.progress = {0}% 완료됨 +players = {0} 플레이어 players.single = {0} 플레이어 players.search = 검색 players.notfound = [gray]플레이어를 찾을 수 없습니다. @@ -251,7 +251,7 @@ on = 활성화 off = 비활성화 save.autosave = 자동저장: {0} save.map = 맵: {0} -save.wave = {0} 웨이브 +save.wave = {0} 단계 save.mode = 게임모드: {0} save.date = 마지막 저장일: {0} save.playtime = 플레이 시간: {0} @@ -278,18 +278,21 @@ quit.confirm.tutorial = 튜토리얼을 종료하시겠습니까?\n튜토리얼 loading = [accent]불러오는중... reloading = [accent]모드 새로고침하는중... saving = [accent]저장중... -respawn = 코어에서 부활까지 [accent][[{0}][]초 남음. +respawn = [accent][[{0}][] 키 또는 초후 코어에서 리스폰 cancelbuilding = [accent][[{0}][] 를 눌러 계획 초기화 selectschematic = [accent][[{0}][] 를 눌러 선택+복사 pausebuilding = [accent][[{0}][] 를 눌러 건설 일시중지 resumebuilding = [scarlet][[{0}][] 를 눌러 건설 재개 -wave = [accent]{0} 웨이브 -wave.waiting = 다음 웨이브까지[lightgray] {0}초 -wave.waveInProgress = [lightgray]웨이브 진행중 +wave = [accent]{0} 단계 +wave.cap = [accent]Wave {0}/{1} +wave.waiting = 다음 단계까지[lightgray] {0}초 +wave.waveInProgress = [lightgray]단계 진행중 waiting = [lightgray]대기중... waiting.players = 상대 플레이어를 기다리는 중... wave.enemies = [lightgray]적 유닛 {0}명 남음 wave.enemy = [lightgray]{0}명 남음 +wave.guardianwarn = [accent]{0}[] 단계 후에 가디언이 접근합니다. +wave.guardianwarn.one = [accent]{0}[] 단계 후에 가디언이 접근합니다. loadimage = 사진 불러오기 saveimage = 사진 저장 unknown = 알 수 없음 @@ -322,33 +325,34 @@ editor.mapinfo = 맵 정보 editor.author = 제작자: editor.description = 설명: editor.nodescription = 맵을 업로드하려면 최소 4자 이상의 설명이 있어야 합니다. -editor.waves = 웨이브: +editor.waves = 단계: editor.rules = 규칙: -editor.generation = 생성: +editor.generation = 지형 생성: editor.ingame = 인게임 편집 editor.publish.workshop = 창작마당 게시 editor.newmap = 신규 맵 +editor.center = 중앙 workshop = 창작마당 -waves.title = 웨이브 +waves.title = 단계 waves.remove = 삭제 waves.never = 여기까지 유닛생성 waves.every = 매 -waves.waves = 웨이브마다 -waves.perspawn = 생성 -waves.shields = 방어막/웨이브 +waves.waves = 단계마다 +waves.perspawn = 마리 생성 +waves.shields = 보호막/단계 waves.to = 부터 -waves.guardian = 보호자 +waves.guardian = 가디언 waves.preview = 미리보기 waves.edit = 편집 waves.copy = 클립보드로 복사 waves.load = 클립보드에서 불러오기 -waves.invalid = 클립보드에 잘못된 웨이브 데이터가 있습니다. -waves.copied = 웨이브 복사됨 -waves.none = 적 웨이브가 설정되지 않았습니다.\n비어있을 시 자동으로 기본 적 웨이브로 설정됩니다. +waves.invalid = 클립보드에 잘못된 단계 데이터가 있습니다. +waves.copied = 단계 복사됨 +waves.none = 적 단계가 설정되지 않았습니다.\n비어있을 시 자동으로 기본 적 단계로 설정됩니다. -wavemode.counts = counts -wavemode.totals = totals -wavemode.health = health +wavemode.counts = 마리 +wavemode.totals = 총 +wavemode.health = 체력 editor.default = [lightgray]<기본값> details = 설명 @@ -416,6 +420,7 @@ filters.empty = [lightgray]필터가 없습니다! 아래 버튼을 눌러 하 filter.distort = 왜곡 filter.noise = 노이즈 filter.enemyspawn = 적 스폰 선택 +filter.spawnpath = Path To Spawn filter.corespawn = 코어 선택 filter.median = 중앙값 filter.oremedian = 자원 중앙값 @@ -428,24 +433,25 @@ filter.clear = 초기화 filter.option.ignore = 무시 filter.scatter = 흩뿌리기 filter.terrain = 지형 -filter.option.scale = 규모 -filter.option.chance = 배치 횟수 +filter.option.scale = 크기 +filter.option.chance = 배치 빈도 filter.option.mag = 크기 -filter.option.threshold = 문턱 +filter.option.threshold = 경계선 filter.option.circle-scale = 원 크기 filter.option.octaves = 옥타브 filter.option.falloff = 경사 filter.option.angle = 각도 filter.option.amount = 개수 filter.option.block = 블록 -filter.option.floor = 바닥 +filter.option.floor = 바꿀 바닥 filter.option.flooronto = 목표 바닥 +filter.option.target = Target filter.option.wall = 벽 filter.option.ore = 자원 filter.option.floor2 = 2층 바닥 -filter.option.threshold2 = 2번째 문턱 +filter.option.threshold2 = 2번째 경계선 filter.option.radius = 반경 -filter.option.percentile = 백분위수 +filter.option.percentile = 백분율 width = 넓이: height = 높이: @@ -467,26 +473,20 @@ abandon = 포기 abandon.text = 이 지역과 모든 자원이 적에게 넘어갑니다. locked = 잠김 complete = [lightgray]해금 조건 : -requirement.wave = {1}지역에서 {0}웨이브 달성 -requirement.core = {0}지역에서 적 코어를 파괴 +requirement.wave = {1} 지역에서 {0}단계 달성 +requirement.core = {0} 지역에서 적 코어를 파괴 requirement.research = {0} 연구 requirement.capture = {0} 점령 -resume = 지역 재개:\n[lightgray]{0} -bestwave = [lightgray]최고 웨이브: {0} -launch = < 출격 > -launch.text = Launch -launch.title = 출격 성공 -launch.next = [lightgray]다음 출격 기회는 {0} 웨이브에서 나타납니다. -launch.unable2 = [scarlet]출격할 수 없습니다.[] -launch.confirm = 이것은 당신의 코어에 있는 모든 자원을 출격 시킬 것입니다.\n당신은 이 기지로 다시 돌아올 수 없을 것입니다. -launch.skip.confirm = 지금 건너뛰면 다음 출격 웨이브가 끝날 때까지 출격할 수 없습니다. +bestwave = [lightgray]최고 단계: {0} +launch.text = 출격 +research.multiplayer = Only the host can research items. uncover = 지역 개방 configure = 로드아웃 설정 -loadout = Loadout -resources = Resources +loadout = 로드아웃 +resources = 자원 bannedblocks = 금지된 블록들 addall = 모두 추가 -launch.destination = Destination: {0} +launch.destination = 목적지: {0} configure.invalid = 해당 값은 0에서 {0} 사이의 숫자여야 합니다. zone.unlocked = [lightgray]{0} 해금됨. zone.requirement.complete = {0}에 대한 요구 사항 충족:[lightgray]\n{1} @@ -510,17 +510,23 @@ error.bloom = 블룸 그래픽 효과를 적용하지 못했습니다.\n당신 weather.rain.name = 비 weather.snow.name = 눈 -weather.sandstorm.name = 모래폭풍 -weather.sporestorm.name = 포자폭풍 +weather.sandstorm.name = 모래 폭풍 +weather.sporestorm.name = 포자 폭풍 +weather.fog.name = Fog -sectors.unexplored = [lightgray]Unexplored -sectors.resources = Resources: -sectors.production = Production: -sectors.stored = Stored: -sectors.resume = Resume -sectors.launch = Launch -sectors.select = Select -sectors.nonelaunch = [lightgray]none (sun) +sectors.unexplored = [lightgray]미개척 +sectors.resources = 자원: +sectors.production = 생산: +sectors.stored = 저장: +sectors.resume = 재개 +sectors.launch = 출격 +sectors.select = 선택 +sectors.nonelaunch = [lightgray]없음 (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = 전초기지 sector.craters.name = 크레이터 @@ -558,8 +564,12 @@ settings.graphics = 그래픽 settings.cleardata = 게임 데이터 초기화... settings.clear.confirm = 정말로 이 데이터를 지우시겠습니까?\n완료된 작업은 취소할 수 없습니다! settings.clearall.confirm = [scarlet]경고![]\n이 작업은 저장된 맵, 맵파일, 잠금 해제된 목록과 키 매핑, 그리고 모든 데이터를 삭제합니다.\n확인 버튼을 다시 눌러 모든 데이터를 삭제하고 게임에서 나갑니다. -settings.clearsaves.confirm = Are you sure you want to clear all your saves? -settings.clearsaves = Clear Saves +settings.clearsaves.confirm = 정말로 모든 저장을 삭제 하시겠습니까? +settings.clearsaves = 저장 초기화 +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent]< 일시정지 > clear = 초기화 banned = [scarlet]차단됨 @@ -570,49 +580,74 @@ info.title = 정보 error.title = [scarlet]오류가 발생했습니다. error.crashtitle = 오류가 발생했습니다 unit.nobuild = [scarlet]이 유닛은 건설할 수 없습니다. +lastaccessed = [lightgray]마지막 접근: {0} +block.unknown = [lightgray]??? + stat.input = 입력 stat.output = 출력 stat.booster = 가속 stat.tiles = 필요한 타일 stat.affinities = 친화력 -block.unknown = [lightgray]??? -stat.powercapacity = 전력 용량 -stat.powershot = 전력/발 -stat.damage = 공격력 -stat.targetsair = 공중 공격 -stat.targetsground = 지상 공격 -stat.itemsmoved = 이동 속도 -stat.launchtime = 출격 간격 -stat.shootrange = 사거리 -stat.size = 크기 +stat.powercapacity = Power Capacity +stat.powershot = Power/Shot +stat.damage = Damage +stat.targetsair = Targets Air +stat.targetsground = Targets Ground +stat.itemsmoved = Move Speed +stat.launchtime = Time Between Launches +stat.shootrange = Range +stat.size = Size stat.displaysize = Display Size -stat.liquidcapacity = 액체 용량 -stat.powerrange = 전력 범위 +stat.liquidcapacity = Liquid Capacity +stat.powerrange = Power Range stat.linkrange = Link Range stat.instructions = Instructions -stat.powerconnections = 최대 연결 수 -stat.poweruse = 전력 사용 -stat.powerdamage = 전력/데미지 -stat.itemcapacity = 저장 용량 -stat.basepowergeneration = 기본 전력 생성량 -stat.productiontime = 제작 시간 -stat.repairtime = 전체 블록 수리시간 -stat.speedincrease = 속도 증가 -stat.range = 사거리 -stat.drilltier = 드릴 -stat.drillspeed = 기본 드릴 속도 -stat.boosteffect = 가속 효과 -stat.maxunits = 최대 활성 유닛수 -stat.health = 체력 -stat.buildtime = 건설 시간 +stat.powerconnections = Max Connections +stat.poweruse = Power Use +stat.powerdamage = Power/Damage +stat.itemcapacity = Item Capacity +stat.memorycapacity = Memory Capacity +stat.basepowergeneration = Base Power Generation +stat.productiontime = Production Time +stat.repairtime = Block Full Repair Time +stat.speedincrease = Speed Increase +stat.range = Range +stat.drilltier = Drillables +stat.drillspeed = Base Drill Speed +stat.boosteffect = Boost Effect +stat.maxunits = Max Active Units +stat.health = Health +stat.buildtime = Build Time stat.maxconsecutive = Max Consecutive -stat.buildcost = 건설 재료 -stat.inaccuracy = 오차각 -stat.shots = 공격 속도 -stat.reload = 발/초 -stat.ammo = 탄약 -stat.shieldhealth = 보호막 체력 +stat.buildcost = Build Cost +stat.inaccuracy = Inaccuracy +stat.shots = Shots +stat.reload = Shots/Second +stat.ammo = Ammo +stat.shieldhealth = Shield Health stat.cooldowntime = Cooldown Time +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = 더 좋은 드릴이 필요 bar.noresources = 자원 부족 @@ -624,6 +659,7 @@ bar.powerbalance = 전력: {0}/s bar.powerstored = 저장량: {0}/{1} bar.poweramount = 전력: {0} bar.poweroutput = 전력 출력: {0} +bar.powerlines = 연결: {0}/{1} bar.items = 자원량: {0} bar.capacity = 용량: {0} bar.unitcap = {0} {1}/{2} @@ -635,6 +671,8 @@ bar.progress = 생산 진행도 bar.input = 입력 bar.output = 출력 +units.processorcontrol = [lightgray]프로세서 제어됨 + bullet.damage = [stat]{0}[lightgray] 피해 bullet.splashdamage = [stat]{0}[lightgray] 범위 공격 ~[stat] {1}[lightgray] 타일 bullet.incendiary = [stat]방화 @@ -642,12 +680,15 @@ bullet.homing = [stat]유도 bullet.shock = [stat]전격 bullet.frag = [stat]파편 bullet.knockback = [stat]{0}[lightgray] 밀침 +bullet.pierce = [stat]{0}[lightgray]x 피어스 +bullet.infinitepierce = [stat]피어스 bullet.freezing = [stat]빙결 bullet.tarred = [stat]타르 bullet.multiplier = [stat]{0}[lightgray]x 탄약 배수 bullet.reload = [stat]{0}[lightgray]x 발사 속도 unit.blocks = 블록 +unit.blockssquared = blocks² unit.powersecond = 전력/초 unit.liquidsecond = 액체/초 unit.itemssecond = 개/초 @@ -655,12 +696,12 @@ unit.liquidunits = 액체 unit.powerunits = 전력 unit.degrees = 도 unit.seconds = 초 -unit.minutes = mins +unit.minutes = 분 unit.persecond = /초 -unit.perminute = /min +unit.perminute = /분 unit.timesspeed = x 배 unit.percent = % -unit.shieldhealth = shield health +unit.shieldhealth = 보호막 체력 unit.items = 자원 unit.thousands = 천 unit.millions = 백만 @@ -670,7 +711,7 @@ category.power = 전력 category.liquids = 액체 category.items = 자원 category.crafting = 입력/출력 -category.shooting = 사격 +category.function = Function category.optional = 보조 자원 setting.landscape.name = 가로화면 잠금 setting.shadows.name = 그림자 @@ -679,12 +720,11 @@ setting.linear.name = 선형 필터링 setting.hints.name = 힌트 setting.flow.name = 자원 흐름량 표시 setting.buildautopause.name = 건설 자동 일시정지 -setting.mapcenter.name = 플레이어 기준으로 맵 중앙 고정 -setting.animatedwater.name = 움직이는 유체 -setting.animatedshields.name = 움직이는 보호막 +setting.animatedwater.name = 액체 애니메이션 효과 +setting.animatedshields.name = 보호막 애니메이션 효과 setting.antialias.name = 안티 에일리어싱[lightgray] (재시작 필요)[] -setting.playerindicators.name = 플레이어 표시기 -setting.indicators.name = 적 표시기 +setting.playerindicators.name = 플레이어 위치 표시기 +setting.indicators.name = 적 위치 표시기 setting.autotarget.name = 자동 조준 setting.keyboard.name = 마우스+키보드 조작 setting.touchscreen.name = 터치스크린 조작 @@ -698,22 +738,21 @@ setting.difficulty.easy = 쉬움 setting.difficulty.normal = 보통 setting.difficulty.hard = 어려움 setting.difficulty.insane = 미침 -setting.difficulty.name = 난이도: +setting.difficulty.name = 난이도: setting.screenshake.name = 화면 흔들림 setting.effects.name = 효과 보임 setting.destroyedblocks.name = 파괴된 블록 표시 setting.blockstatus.name = 블록 상태 표시 -setting.conveyorpathfinding.name = 컨베이어 배치 경로찾기 +setting.conveyorpathfinding.name = 컨베이어 배치시 자동으로 경로 찾기 setting.sensitivity.name = 컨트롤러 감도 setting.saveinterval.name = 저장 간격 -setting.seconds = {0} 초 +setting.seconds = {0}초 setting.blockselecttimeout.name = 블록 선택 시간 초과 -setting.milliseconds = {0} 밀리 초 +setting.milliseconds = {0}ms setting.fullscreen.name = 전체 화면 setting.borderlesswindow.name = 테두리 없는 창 모드[lightgray] (재시작이 필요할 수 있습니다) setting.fps.name = FPS와 핑 표시 setting.smoothcamera.name = 부드러운 시점 -setting.blockselectkeys.name = 블록 선택 키 표시 setting.vsync.name = 수직 동기화 setting.pixelate.name = 픽셀화 setting.minimap.name = 미니맵 표시 @@ -747,8 +786,8 @@ category.blocks.name = 블록 선택 command.attack = 공격 command.rally = 순찰 command.retreat = 후퇴 -command.idle = Idle -placement.blockselectkeys = \n[lightgray]키: [{0}, +command.idle = 대기 +placement.blockselectkeys = \n[lightgray]단축키: [{0}, keybind.respawn.name = 리스폰 keybind.control.name = 유닛 제어 keybind.clear_building.name = 설계도 초기화 @@ -760,7 +799,7 @@ keybind.toggle_block_status.name = 블록 상태 토글 keybind.move_x.name = X축 이동 keybind.move_y.name = Y축 이동 keybind.mouse_move.name = 커서를 따라서 이동 -keybind.pan.name = Pan View +keybind.pan.name = 펜 보기 keybind.boost.name = 부스트 keybind.schematic_select.name = 영역 설정 keybind.schematic_menu.name = 설계도 메뉴 @@ -788,9 +827,9 @@ keybind.diagonal_placement.name = 대각선 설치 keybind.pick.name = 블록 선택 keybind.break_block.name = 블록 파괴 keybind.deselect.name = 선택해제 -keybind.pickupCargo.name = Pickup Cargo -keybind.dropCargo.name = Drop Cargo -keybind.command.name = Command +keybind.pickupCargo.name = 화물 집기 +keybind.dropCargo.name = 화물 내려놓기 +keybind.command.name = 명령 keybind.shoot.name = 사격 keybind.zoom.name = 확대 keybind.menu.name = 메뉴 @@ -810,9 +849,9 @@ keybind.drop_unit.name = 유닛 떨구기 keybind.zoom_minimap.name = 미니맵 확대 mode.help.title = 모드 설명 mode.survival.name = 생존 -mode.survival.description = 이것은 일반 모드입니다. 제한된 자원과 자동으로 시작되는 웨이브가 있습니다.\n[gray]플레이하려면 맵에 적의 스폰지점이 필요합니다. +mode.survival.description = 이것은 일반 모드입니다. 제한된 자원과 자동으로 시작되는 단계가 있습니다.\n[gray]플레이하려면 맵에 적의 스폰지점이 필요합니다. mode.sandbox.name = 샌드박스 -mode.sandbox.description = 무한한 자원과 웨이브 시작 타이머가 없습니다. +mode.sandbox.description = 무한한 자원과 단계 시작 타이머가 없습니다. mode.editor.name = 편집기 mode.pvp.name = PvP mode.pvp.description = 다른 플레이어와 현장에서 싸우십시오.\n[gray]플레이하려면 맵에 다른 색상의 코어가 2개 이상 있어야합니다. @@ -821,11 +860,12 @@ mode.attack.description = 적의 기지를 파괴하세요.\n[gray]플레이하 mode.custom = 사용자 정의 규칙 rules.infiniteresources = 무한 자원 -rules.reactorexplosions = 원자로 폭발 -rules.wavetimer = 웨이브 시간 -rules.waves = 웨이브 +rules.reactorexplosions = 원자로 폭발 허용 +rules.schematic = 설계도 허용 +rules.wavetimer = 시간 제한이 있는 단계 +rules.waves = 일반 단계 rules.attack = 공격 모드 -rules.buildai = AI Building +rules.buildai = AI 건설 rules.enemyCheat = 무한 AI (빨간팀) 자원 rules.blockhealthmultiplier = 블록 체력 배수 rules.blockdamagemultiplier = 블록 공격력 배수 @@ -833,31 +873,33 @@ rules.unitbuildspeedmultiplier = 유닛 생산 속도 배수 rules.unithealthmultiplier = 유닛 체력 배수 rules.unitdamagemultiplier = 유닛 공격력 배수 rules.enemycorebuildradius = 적 코어 건설 금지구역 범위:[lightgray] (타일) -rules.wavespacing = 웨이브 간격:[lightgray] (초) +rules.wavespacing = 단계 간격:[lightgray] (초) rules.buildcostmultiplier = 건설 자원소모 배수 rules.buildspeedmultiplier = 건설 속도 배수 rules.deconstructrefundmultiplier = 해체 환불 배수 -rules.waitForWaveToEnd = 웨이브가 끝날때까지 대기중 +rules.waitForWaveToEnd = 한 단계가 끝날때까지 대기 rules.dropzoneradius = 스폰 구역 범위: [lightgray] (타일) -rules.unitammo = 유닛에 탄약이 필요 -rules.title.waves = 웨이브 +rules.unitammo = 탄약 필요 +rules.title.waves = 단계 rules.title.resourcesbuilding = 자원 & 건축 rules.title.enemy = 적 rules.title.unit = 유닛 rules.title.experimental = 실험적인 기능 rules.title.environment = 환경 -rules.lighting = 조명 -rules.fire = Fire -rules.explosions = Block/Unit Explosion Damage +rules.lighting = 조명 활성화 +rules.enemyLights = 적에게 조명 표시 활성화 +rules.fire = 방화 활성화 +rules.explosions = 블록/유닛 폭발 데미지 활성화 rules.ambientlight = 자연 조명 -rules.weather = Weather -rules.weather.frequency = Frequency: -rules.weather.duration = Duration: +rules.weather = 날씨 +rules.weather.frequency = 빈도: +rules.weather.duration = 지속 시간: content.item.name = 자원 content.liquid.name = 액체 content.unit.name = 유닛 content.block.name = 블록 + item.copper.name = 구리 item.lead.name = 납 item.coal.name = 석탄 @@ -879,23 +921,6 @@ liquid.slag.name = 광재 liquid.oil.name = 기름 liquid.cryofluid.name = 냉각수 -item.explosiveness = [lightgray]폭발성: {0} -item.flammability = [lightgray]인화성: {0} -item.radioactivity = [lightgray]방사능: {0} - -unit.health = [lightgray]체력: {0} -unit.speed = [lightgray]속도: {0} -unit.weapon = [lightgray]무기: {0} -unit.itemcapacity = [lightgray]자원 수용량: {0} -unit.minespeed = [lightgray]채광 속도: {0}% -unit.minepower = [lightgray]채광 레벨: {0} -unit.ability = [lightgray]능력: {0} -unit.buildspeed = [lightgray]건설 속도: {0}% - -liquid.heatcapacity = [lightgray]비열: {0} -liquid.viscosity = [lightgray]점도: {0} -liquid.temperature = [lightgray]온도: {0} - unit.dagger.name = 대거 unit.mace.name = 메이스 unit.fortress.name = 포트리스 @@ -906,7 +931,7 @@ unit.crawler.name = 크롤러 unit.atrax.name = 아트락스 unit.spiroct.name = 스피록트 unit.arkyid.name = 아키드 -unit.toxopid.name = Toxopid +unit.toxopid.name = 톡소드 unit.flare.name = 플레어 unit.horizon.name = 호라이즌 unit.zenith.name = 제니스 @@ -915,8 +940,8 @@ unit.eclipse.name = 이클립스 unit.mono.name = 모노 unit.poly.name = 폴리 unit.mega.name = 메가 -unit.quad.name = Quad -unit.oct.name = Oct +unit.quad.name = 쿼드 +unit.oct.name = 옥토 unit.risso.name = 리소 unit.minke.name = 민케 unit.bryde.name = 브리드 @@ -925,17 +950,18 @@ unit.omura.name = 오무라 unit.alpha.name = 알파 unit.beta.name = 베타 unit.gamma.name = 감마 -unit.scepter.name = Scepter -unit.reign.name = Reign -unit.vela.name = Vela -unit.corvus.name = Corvus +unit.scepter.name = 셉터 +unit.reign.name = 리닝 +unit.vela.name = 벨라 +unit.corvus.name = 코르부스 -block.resupply-point.name = Resupply Point +block.resupply-point.name = 보급 지점 block.parallax.name = 시차 block.cliff.name = 낭떠러지 block.sand-boulder.name = 사암 block.grass.name = 잔디 block.slag.name = 광재 +block.space.name = 우주 block.salt.name = 소금 block.salt-wall.name = 소금 벽 block.pebbles.name = 조약돌 @@ -981,6 +1007,7 @@ block.darksand-water.name = 젖은 검은 모래 block.char.name = 숯 block.dacite.name = 데이사이트 block.dacite-wall.name = 데이사이트 벽 +block.dacite-boulder.name = 데이사이트 볼더 block.ice-snow.name = 얼음눈 block.stone-wall.name = 돌 벽 block.ice-wall.name = 얼음 벽 @@ -1075,6 +1102,7 @@ block.power-source.name = 전력 공급기 block.unloader.name = 언로더 block.vault.name = 창고 block.wave.name = 파도 +block.tsunami.name = 쓰나미 block.swarmer.name = 스워머 block.salvo.name = 살보 block.ripple.name = 립플 @@ -1109,23 +1137,24 @@ block.cyclone.name = 사이클론 block.fuse.name = 퓨즈 block.shock-mine.name = 전격 지뢰 block.overdrive-projector.name = 과부하 프로젝터 -block.force-projector.name = 보호막 프로젝터 +block.force-projector.name = 포스 프로젝터 block.arc.name = 아크 block.rtg-generator.name = RTG 발전기 block.spectre.name = 스펙터 block.meltdown.name = 멜트다운 +block.foreshadow.name = 전그림자 block.container.name = 컨테이너 block.launch-pad.name = 출격 패드 block.launch-pad-large.name = 대형 출격 패드 block.segment.name = 세그먼트 -block.command-center.name = 지휘소 +block.command-center.name = 커맨드 센터 block.ground-factory.name = 지상 공장 block.air-factory.name = 항공 공장 block.naval-factory.name = 해양 공장 -block.additive-reconstructor.name = 첨가물 재구성기 -block.multiplicative-reconstructor.name = 다중 재구성기 -block.exponential-reconstructor.name = 지수 재구성기 -block.tetrative-reconstructor.name = 발산 재구성기 +block.additive-reconstructor.name = 부가 재건축기 +block.multiplicative-reconstructor.name = 다중 재건축기 +block.exponential-reconstructor.name = 급수 재건축기 +block.tetrative-reconstructor.name = 테트레티 재건축기 block.payload-conveyor.name = 화물 컨베이어 block.payload-router.name = 화물 분배기 block.disassembler.name = 가속 분해기 @@ -1133,12 +1162,13 @@ block.silicon-crucible.name = 실리콘 도가니 block.overdrive-dome.name = 대형 과부하 프로젝터 block.switch.name = 스위치 -block.micro-processor.name = 소형 프로세서 -block.logic-processor.name = 명령 프로세서 +block.micro-processor.name = 마이크로 프로세서 +block.logic-processor.name = 로직 프로세서 block.hyper-processor.name = 하이퍼 프로세서 -block.logic-display.name = 화면 -block.large-logic-display.name = 대형 화면 -block.memory-cell.name = 기억 블록 +block.logic-display.name = 로직 디스플레이 +block.large-logic-display.name = 대형 로직 디스플레이 +block.memory-cell.name = 메모리 셀 +block.memory-bank.name = 메모리 뱅크 team.blue.name = 파랑색 팀 team.crux.name = 빨강색 팀 @@ -1166,9 +1196,9 @@ tutorial.breaking = 블록은 종종 파괴 되어야 합니다.\n선택한 모 tutorial.breaking.mobile = 블록은 종종 파괴 되어야 합니다.\n[accent]삭제 모드[]를 선택한 다음 블록을 탭 하여 파괴할 수 있습니다.\n[accnet]몇 초 동안 손가락을 누르고 원하는 방향으로 드래그[]하여 범위 안에있는 블록을 파괴하세요.\n그리고 체크 표시 버튼을 눌러 삭제 작업을 할 수 있습니다.\n[accent]영역 선택을 사용하여 코어 왼쪽의 모든 조각 벽을 파괴하세요. tutorial.withdraw = 경우에 따라 블록에서 자원을 직접 가져와야 합니다.\n이 작업을 하려면 [accent]자원이 있는 블록[]을 탭한 다음, 인벤토리에서 [accent]자원[]을 탭하세요.\n[accent]누른 상태를 유지[]하면 여러개를 꺼낼 수 있습니다.\n\n[accent]코어에서 구리를 빼내세요. tutorial.deposit = 기체에서 목적지 블록으로 드래그하여 자원을 블록에 넣으세요.\n\n[accent]구리를 다시 코어에 넣으세요[]. -tutorial.waves = [lightgray]적[]이 다가옵니다.\n2 웨이브로부터 코어를 방어하세요. [accent]클릭[]하여 사격할 수 있습니다.\n더 많은 포탑과 드릴을 건설하고 구리를 더 모으세요. -tutorial.waves.mobile = [lightgray]적[]이 다가옵니다.\n2 웨이브로부터 코어를 방어하세요. 당신의 기체는 자동으로 적을 향해 사격합니다.\n더 많은 포탑과 드릴을 건설하고 구리를 더 모으세요. -tutorial.launch = 특정 웨이브에 도달하면 [accent]코어로 출격[] 을 할 수 있습니다.\n\n이렇게 얻은 자원을 사용하여 새로운 기술을 연구 할 수 있습니다.\n\n[accent]출격 버튼을 누르세요. +tutorial.waves = [lightgray]적[]이 다가옵니다.\n2단계 로부터 코어를 방어하세요. [accent]클릭[]하여 사격할 수 있습니다.\n더 많은 포탑과 드릴을 건설하고 구리를 더 모으세요. +tutorial.waves.mobile = [lightgray]적[]이 다가옵니다.\n2단계 부터 코어를 방어하세요. 당신의 기체는 자동으로 적을 향해 사격합니다.\n더 많은 포탑과 드릴을 건설하고 구리를 더 모으세요. +tutorial.launch = 특정 단계에 도달하면 [accent]코어로 출격[] 을 할 수 있습니다.\n\n이렇게 얻은 자원을 사용하여 새로운 기술을 연구 할 수 있습니다.\n\n[accent]출격 버튼을 누르세요. item.copper.description = 가장 기본적인 건설 재료. 모든 유형의 블록에서 광범위하게 사용됩니다. item.lead.description = 기본 초반 재료. 전자 및 액체 수송 블록에서 광범위하게 사용되는 자원입니다. @@ -1214,8 +1244,8 @@ block.item-source.description = 자원을 무한대로 출력합니다. 샌드 block.item-void.description = 모든 자원을 파괴합니다. 샌드박스 전용. block.liquid-source.description = 액체를 무한히 출력합니다. 샌드박스 전용. block.liquid-void.description = 액체를 제거합니다. 샌드박스 전용. -block.copper-wall.description = 저렴한 수비 블록.\n처음 몇 웨이브에서 코어와 포탑을 보호하는데 유용합니다. -block.copper-wall-large.description = 저렴한 수비 블록.\n처음 몇 웨이브에서 코어와 포탑을 보호하는데 유용합니다.\n여러 타일을 차지합니다. +block.copper-wall.description = 저렴한 수비 블록.\n초반 단계에서 코어와 포탑을 보호하는데 유용합니다. +block.copper-wall-large.description = 저렴한 수비 블록.\n초반 단계에서 코어와 포탑을 보호하는데 유용합니다.\n여러 타일을 차지합니다. block.titanium-wall.description = 적당히 강한 방어 블록.\n적에게서 적절한 보호를 제공합니다. block.titanium-wall-large.description = 적당히 강한 방어 블록.\n적에게서 적절한 보호를 제공합니다.\n여러 타일을 차지합니다. block.plastanium-wall.description = 전격 공격을 흡수하고 전력 노드의 자동 연결을 차단하는 특수 유형의 벽. @@ -1228,7 +1258,7 @@ block.surge-wall.description = 내구성이 매우 강한 방어 블록.\n총탄 block.surge-wall-large.description = 내구성이 매우 강한 방어 블록.\n총탄이 날아오면 충전량을 높여 무작위로 방출합니다.\n여러 타일을 차지합니다. block.door.description = 작은 문. 탭하여 열거나 닫을 수 있습니다. block.door-large.description = 큰 문. 탭하여 열거나 닫을 수 있습니다.\n여러 타일을 차지합니다. -block.mender.description = 주변의 블록을 주기적으로 수리합니다. 웨이브 사이의 방어를 유지하게 합니다.\n선택적으로 실리콘을 사용하여 범위와 효율성을 향상시킵니다. +block.mender.description = 주변의 블록을 주기적으로 수리합니다. 각 단계 사이의 방어를 유지하게 합니다.\n선택적으로 실리콘을 사용하여 범위와 효율성을 향상시킵니다. block.mend-projector.description = 소형 수리 프로젝터의 강화 버전. 주변의 블록을 수리합니다.\n선택적으로 메타를 사용하여 범위와 효율성을 향상시킵니다. block.overdrive-projector.description = 주변 건물의 속도를 높입니다.\n선택적으로 메타를 사용하여 범위와 효율성을 높입니다. block.force-projector.description = 건물과 내부의 유닛을 공격으로부터 보호하며, 그 주위에 육각형 역장을 형성합니다.\n너무 많은 손상이 지속되면 과열되며, 선택적으로 냉각수를 사용하여 과열을 방지할 수 있고, 메타는 역장의 크기를 늘리는 데 사용할 수 있습니다. @@ -1241,7 +1271,7 @@ block.bridge-conveyor.description = 고급 자원 운송 블록. 지형이나 block.phase-conveyor.description = 고급 자원 운송 블록. 전력을 사용하여 여러 타일을 통해 연결된 컨베이어로 자원을 순간이동 시킵니다. block.sorter.description = 자원을 정렬합니다. 자원이 선택과 일치하면 앞방향으로 통과하며, 그렇지 않을 경우 왼쪽과 오른쪽으로 출력됩니다. block.inverted-sorter.description = 표준 분류기와 같은 자원을 처리하지만, 대신 선택된 자원을 측면으로 출력합니다. -block.router.description = 자원을 받아서 최대 3개의 다른 방향으로 동일하게 출력합니다. 하나의 공급원에서 여러 대상으로 재료를 분할하는 데 유용합니다.\n\n[scarlet]공장에서 생산된 재료는 출력에 의해 막히게 되므로, 절대로 공장 옆에서 사용하지 마십시오. +block.router.description = 자원을 받아서 최대 3개의 다른 방향으로 동일하게 출력합니다. 하나의 소스에서 여러 대상으로 재료를 분할하는 데 유용합니다.\n\n[scarlet]공장에서 생산된 재료는 출력에 의해 막히게 되므로, 절대로 공장 옆에서 사용하지 마십시오. block.distributor.description = 고급 분배기. 자원을 최대 7개의 다른 방향으로 동일하게 분할합니다. block.overflow-gate.description = 전면 경로가 차단 된 경우에만 왼쪽과 오른쪽으로 출력됩니다. block.underflow-gate.description = 오버플로 게이트의 반대. 왼쪽 및 오른쪽 경로가 차단되면 전면으로 출력됩니다. @@ -1252,7 +1282,7 @@ block.thermal-pump.description = 가장 강력한 펌프. block.conduit.description = 기본 액체 운송 블록. 액체를 앞으로 이동시킵미다. 펌프 및 기타 파이프와 함께 사용됩니다. block.pulse-conduit.description = 고급 액체 운송 블록. 액체를 더 빠르게 운반하고 표준 파이프보다 더 많이 저장합니다. block.plated-conduit.description = 펄스 파이프와 같은 속도로 이동하지만 더 높은 방어력을 가지고 있습니다. 파이프 이외의 물체로 측면의 액체를 받아들이지 않습니다.\n누설이 적습니다. -block.liquid-router.description = 한 방향에서 액체를 받아 최대 3개의 다른 방향으로 동일하게 출력합니다. 일정량의 액체를 저장할 수도 있으며 한 공급원에서 여러 대상으로 액체를 분할하는 데 유용합니다. +block.liquid-router.description = 한 방향에서 액체를 받아 최대 3개의 다른 방향으로 동일하게 출력합니다. 일정량의 액체를 저장할 수도 있으며 한 소스에서 여러 대상으로 액체를 분할하는 데 유용합니다. block.liquid-tank.description = 대량의 액체를 저장합니다. 재료가 일정하지 않은 상황에서 버퍼를 생성하거나 중요한 블록을 냉각하기 위한 보호 장치로 사용하세요. block.liquid-junction.description = 두 개의 교차 파이프를 위한 다리 역할을 합니다. 다른 액체를 다른 위치로 운반하는 두 개의 다른 파이프가 있는 상황에서 유용합니다. block.bridge-conduit.description = 고급 액체 운송 블록. 지형이나 건물을 넘어 최대 3개 타일 위로 액체를 운반할 수 있습니다. @@ -1302,4 +1332,4 @@ block.cyclone.description = 대공 및 대지 포탑. 근처 유닛에게 폭발 block.spectre.description = 거대한 이중 배럴 대포. 공중 및 지상 목표물에 큰 관통 철갑탄을 발사합니다. block.meltdown.description = 거대한 레이저 대포. 근처의 적에게 지속적인 레이버 빔을 충전하여 발사합니다. 냉각수가 있어야 작동합니다. block.repair-point.description = 주변에서 가장 가까운 유닛을 지속적으로 치료합니다. -block.segment.description = 날아오는 발사체를 요격합니다. 레이저는 목표 대상이 아닙니다. \ No newline at end of file +block.segment.description = 날아오는 발사체를 요격합니다. 레이저는 목표 대상이 아닙니다. diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index 2ebd273b5a..0a8290e544 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -55,6 +55,7 @@ schematic.saved = Schema išsaugota. schematic.delete.confirm = Ši schema bus negrįžtamai pašalinta. schematic.rename = Pervadinti schemą schematic.info = {0}x{1}, {2} blokai +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = Įveikta bangų:[accent] {0} stat.enemiesDestroyed = Sunaikinta priešų:[accent] {0} @@ -100,7 +101,6 @@ done = Baigta feature.unsupported = Jūsų įrenginys nepalaiko šios funkcijos. mods.alphainfo = Prisiminkite, jog modifikacijos vis dar yra alpha, ir[scarlet] gali būti [].\nPraneškite apie rastas klaidas Mindustry GitHub puslapyje arba Discord serveryje. -mods.alpha = [accent](Alpha) mods = Modifikacijos mods.none = [lightgray]Modifikacijos nerastos mods.guide = Modifikavimo pagalba @@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] pasirinkimui+kopijavimui pausebuilding = [accent][[{0}][] statymo sustabdymui resumebuilding = [scarlet][[{0}][] statymo pratęsimui wave = [accent]Banga {0} +wave.cap = [accent]Wave {0}/{1} wave.waiting = [lightgray]Banga po {0} wave.waveInProgress = [lightgray]Vyksta banga waiting = [lightgray]Laukiama... waiting.players = Laukiama žaidėjų... wave.enemies = [lightgray]{0} Likę priešai wave.enemy = [lightgray]{0} Likęs priešas +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = Užkrauti vaizdą saveimage = Išsaugoti vaizdą unknown = Nežinomas @@ -328,6 +331,7 @@ editor.generation = Generacija: editor.ingame = Redaguoti žaidime editor.publish.workshop = Publikuoti Dirbtuvėje editor.newmap = Naujas žemėlapis +editor.center = Center workshop = Dirbtuvė waves.title = Bangos waves.remove = Panaikinti @@ -416,6 +420,7 @@ filters.empty = [lightgray]Nėra filtrų! Pridėkite su mygtuku easančiu žemia filter.distort = Iškraipyti filter.noise = Triukšmas filter.enemyspawn = Priešų atsiradimo vietos pasirinkimas +filter.spawnpath = Path To Spawn filter.corespawn = Branduolio pasirinkimas filter.median = Mediana filter.oremedian = Rūdų mediana @@ -440,6 +445,7 @@ filter.option.amount = Kiekis filter.option.block = Blokas filter.option.floor = Sluoksnis filter.option.flooronto = Pasirinktas sluoksnis +filter.option.target = Target filter.option.wall = Siena filter.option.ore = Rūda filter.option.floor2 = Antrasis sluoksnis @@ -471,15 +477,9 @@ requirement.wave = Pasiekite {0} zonoje {1} requirement.core = Sunaikinkite priešų branduolį zonoje {0} requirement.research = Research {0} requirement.capture = Capture {0} -resume = Pratęsti zoną:\n[lightgray]{0} bestwave = [lightgray]Bangos rekordas: {0} -launch = < PALEISTI > launch.text = Launch -launch.title = Paleidimas sėkmingas -launch.next = [lightgray]kita proga bangoje {0} -launch.unable2 = [scarlet]Negalima PALEISTI.[] -launch.confirm = Tai paleis visus resursus jūsų branduolyje.\nJūs nebegalėsite sugrįžti į šią bazę. -launch.skip.confirm = Jei praleisite dabar, negalėsite paleisti iki vėlesnių bangų. +research.multiplayer = Only the host can research items. uncover = Atidengti configure = Keisti resursų kiekį loadout = Loadout @@ -512,6 +512,7 @@ weather.rain.name = Rain weather.snow.name = Snow weather.sandstorm.name = Sandstorm weather.sporestorm.name = Sporestorm +weather.fog.name = Fog sectors.unexplored = [lightgray]Unexplored sectors.resources = Resources: @@ -521,6 +522,11 @@ sectors.resume = Resume sectors.launch = Launch sectors.select = Select sectors.nonelaunch = [lightgray]none (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = Ground Zero sector.craters.name = The Craters @@ -560,6 +566,10 @@ settings.clear.confirm = Ar tikrai norite ištrinti šiuos duomenis?\nTai negali settings.clearall.confirm = [scarlet]ĮSPĖJIMAS![]\nTai ištrins visus duomenis, įskaitant išsaugojimus, žemėlapius, atrakinimus ir mygtukų pakeitimus.\nVos paspaudus 'gerai' žaidimas ištrins visus duomenis ir išsijungs. settings.clearsaves.confirm = Are you sure you want to clear all your saves? settings.clearsaves = Clear Saves +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent]< Sustabdyta > clear = Išvalyti banned = [scarlet]Užblokuota @@ -570,12 +580,14 @@ info.title = Informacija error.title = [crimson]Įvyko klaida error.crashtitle = Įvyko klaida unit.nobuild = [scarlet]Unit can't build +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]??? + stat.input = Įeiga stat.output = Išeiga stat.booster = Stiprintuvas stat.tiles = Privalomi stat.affinities = Affinities -block.unknown = [lightgray]??? stat.powercapacity = Energijos Talpumas stat.powershot = Energija per šūvį stat.damage = Žala @@ -594,6 +606,7 @@ stat.powerconnections = Maks. Jungčių Kiekis stat.poweruse = Energijos Suvartojimas stat.powerdamage = Power/Damage stat.itemcapacity = Daiktų Talpumas +stat.memorycapacity = Memory Capacity stat.basepowergeneration = Bazinis Energijos Generavimas stat.productiontime = Gamybos Laikas stat.repairtime = Pilnas bloko sutaisymo laikas @@ -613,6 +626,28 @@ stat.reload = Šūviai per sekundę stat.ammo = Šoviniai stat.shieldhealth = Shield Health stat.cooldowntime = Cooldown Time +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Privalomas Geresnis Grąžtas bar.noresources = Missing Resources @@ -624,6 +659,7 @@ bar.powerbalance = Energija: {0}/s bar.powerstored = Sukaupta: {0}/{1} bar.poweramount = Energija: {0} bar.poweroutput = Energijos Išeiga: {0} +bar.powerlines = Connections: {0}/{1} bar.items = Daiktai: {0} bar.capacity = Talpumas: {0} bar.unitcap = {0} {1}/{2} @@ -635,6 +671,8 @@ bar.progress = Statymo Progresas bar.input = Įeiga bar.output = Išeiga +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray] žalos bullet.splashdamage = [stat]{0}[lightgray] zonos žalos ~[stat] {1}[lightgray] blokai bullet.incendiary = [stat]uždegantis @@ -642,12 +680,15 @@ bullet.homing = [stat]sekimas bullet.shock = [stat]šokas bullet.frag = [stat]skilantis bullet.knockback = [stat]{0}[lightgray] numušimas +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat]šaldantis bullet.tarred = [stat]dervuotas bullet.multiplier = [stat]{0}[lightgray]x šovinių daugiklis bullet.reload = [stat]{0}[lightgray]x šaudymo greitis unit.blocks = blokai +unit.blockssquared = blocks² unit.powersecond = energijos per sekundę unit.liquidsecond = skysčio per sekundę unit.itemssecond = daiktų per sekundę @@ -670,7 +711,7 @@ category.power = Energija category.liquids = Skysčiai category.items = Daiktai category.crafting = Įeiga/Išeiga -category.shooting = Šaudymas +category.function = Function category.optional = Galimi Pagerinimai setting.landscape.name = Užrakinti pasukimą setting.shadows.name = Šešėliai @@ -679,7 +720,6 @@ setting.linear.name = Linijinis Filtravimas setting.hints.name = Užuominos setting.flow.name = Rodyti Resursų Srauto Geritį[scarlet] (experimental) setting.buildautopause.name = Automatinis Statybų Sustabdymas -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = Vandens Animacija setting.animatedshields.name = Skydų Animacija setting.antialias.name = Glodinimas[lightgray] (reikalingas perkrovimas)[] @@ -713,7 +753,6 @@ setting.fullscreen.name = Fullscreen setting.borderlesswindow.name = Langas Be Pakrasčių[lightgray] (gali reikėti perkrauti) setting.fps.name = Rodyti FPS ir Ping setting.smoothcamera.name = Smooth Camera -setting.blockselectkeys.name = Rodyti Blokų Pasirinkimo Mygtukus setting.vsync.name = VSync setting.pixelate.name = Pikseliavimas setting.minimap.name = Rodyti Mini Žemėlapį @@ -822,6 +861,7 @@ mode.custom = Pasirinktinės Taisyklės rules.infiniteresources = Neriboti Resursai rules.reactorexplosions = Reaktorių Sprogimai +rules.schematic = Schematics Allowed rules.wavetimer = Bangų Laikmatis rules.waves = Bangos rules.attack = Puolimo Režimas @@ -847,6 +887,7 @@ rules.title.unit = Vienetai rules.title.experimental = Eksperimentinis rules.title.environment = Environment rules.lighting = Apšvietimas +rules.enemyLights = Enemy Lights rules.fire = Fire rules.explosions = Block/Unit Explosion Damage rules.ambientlight = Aplinkos Šviesa @@ -858,6 +899,7 @@ content.item.name = Daiktai content.liquid.name = Skysčiai content.unit.name = Vienetai content.block.name = Blokai + item.copper.name = Varis item.lead.name = Švinas item.coal.name = Anglis @@ -879,23 +921,6 @@ liquid.slag.name = Šlakas liquid.oil.name = Nafta liquid.cryofluid.name = Krio Skystis -item.explosiveness = [lightgray]Sprogstamumas: {0}% -item.flammability = [lightgray]Degumas: {0}% -item.radioactivity = [lightgray]Radioaktyvumas: {0}% - -unit.health = [lightgray]Gyvybės: {0} -unit.speed = [lightgray]Greitis: {0} -unit.weapon = [lightgray]Weapon: {0} -unit.itemcapacity = [lightgray]Item Capacity: {0} -unit.minespeed = [lightgray]Mining Speed: {0}% -unit.minepower = [lightgray]Mining Power: {0} -unit.ability = [lightgray]Ability: {0} -unit.buildspeed = [lightgray]Building Speed: {0}% - -liquid.heatcapacity = [lightgray]Karščio Talpumas: {0} -liquid.viscosity = [lightgray]Klampumas: {0} -liquid.temperature = [lightgray]Temperatūra: {0} - unit.dagger.name = Dagger unit.mace.name = Mace unit.fortress.name = Fortress @@ -936,6 +961,7 @@ block.cliff.name = Cliff block.sand-boulder.name = Smėlio Riedulys block.grass.name = Žolė block.slag.name = Slag +block.space.name = Space block.salt.name = Druska block.salt-wall.name = Salt Wall block.pebbles.name = Akmenukai @@ -981,6 +1007,7 @@ block.darksand-water.name = Tamsaus Smėlio Vanduo block.char.name = Char block.dacite.name = Dacite block.dacite-wall.name = Dacite Wall +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = Ledinis Sniegas block.stone-wall.name = Stone Wall block.ice-wall.name = Ice Wall @@ -1075,6 +1102,7 @@ block.power-source.name = Begalinė Energija block.unloader.name = Iškroviklis block.vault.name = Seifas block.wave.name = Wave +block.tsunami.name = Tsunami block.swarmer.name = Swarmer block.salvo.name = Salvo block.ripple.name = Ripple @@ -1114,6 +1142,7 @@ block.arc.name = Arc block.rtg-generator.name = RTG Generatorius block.spectre.name = Spectre block.meltdown.name = Meltdown +block.foreshadow.name = Foreshadow block.container.name = Talpykla block.launch-pad.name = Paleidimo Aikštelė block.launch-pad-large.name = Didelė Paleidimo Aikštelė @@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor block.logic-display.name = Logic Display block.large-logic-display.name = Large Logic Display block.memory-cell.name = Memory Cell +block.memory-bank.name = Memory Bank team.blue.name = mėlyna team.crux.name = raudona @@ -1302,4 +1332,4 @@ block.cyclone.description = Didelis bokštas puolantis, tiek žemę, tiek orą. block.spectre.description = Milžiniškas dvivamzdis bokštas. Šaudo didelius, kiaurai per šarvus einančius šovinius į taikinius esančius ant žemės ir ore. block.meltdown.description = Milžiniška lazerinė patranka. Užsikrauna ir šaudo lazerinius spindulius į aplinkinius priešus. Veikimui reikalingas aušinimo skystis. block.repair-point.description = Pastoviai gydo artimiausius netoliese esančius vienetus. -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. \ No newline at end of file +block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index 41d6e8a8fc..531ee8a7aa 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -55,6 +55,7 @@ schematic.saved = Ontwerp bewaard. schematic.delete.confirm = Dit ontwerp zal in een zwart gat verdwijnen. schematic.rename = Hernoem ontwerp schematic.info = {0}x{1}, {2} blokken +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = Waves Verslagen:[accent] {0} stat.enemiesDestroyed = Vijanden Vernietigd:[accent] {0} @@ -100,7 +101,6 @@ done = Klaar feature.unsupported = Je apparaat ondersteunt deze functionaliteit niet. mods.alphainfo = Houd in gedachten dat mod ondersteuning nieuw is, en daarom[scarlet] mogelijk ontstabiel is[].\nVermeld problemen die je ermee ondervind in de Mindustry GitHub of Discord. -mods.alpha = [accent](Onstabiel) mods = Mods mods.none = [lightgray]Geen mods gevonden! mods.guide = Modding Handboek @@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] om te selecteren + kopiëren pausebuilding = [accent][[{0}][] om bouwen te pauzeren resumebuilding = [scarlet][[{0}][] om bouwen te hervatten wave = [accent]Ronde {0} +wave.cap = [accent]Wave {0}/{1} wave.waiting = [lightgray]Volgende ronde over {0} wave.waveInProgress = [lightgray]Ronde bezig waiting = [lightgray]Wachten... waiting.players = Wachten op spelers... wave.enemies = [lightgray]{0} Vijanden resterend wave.enemy = [lightgray]{0} Vijand resterend +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = Laad afbeelding saveimage = Bewaar afbeelding unknown = Onbekend @@ -328,6 +331,7 @@ editor.generation = Generatie: editor.ingame = Bewerk In-Game editor.publish.workshop = Publiceer in Werkplaats editor.newmap = Nieuwe Kaart +editor.center = Center workshop = Werkplaats waves.title = Rondes waves.remove = Verwijder @@ -416,6 +420,7 @@ filters.empty = [lightgray]Geen filters! Voeg een toe met onderstaande knop. filter.distort = Verdraai filter.noise = Geluid filter.enemyspawn = Enemy Spawn Select +filter.spawnpath = Path To Spawn filter.corespawn = Core Select filter.median = Mediaan filter.oremedian = Ertsmediaan @@ -440,6 +445,7 @@ filter.option.amount = Amount filter.option.block = Blok filter.option.floor = Vloer filter.option.flooronto = Doel Vloer +filter.option.target = Target filter.option.wall = Muur filter.option.ore = Grondstof filter.option.floor2 = Secundaire vloer @@ -471,15 +477,9 @@ requirement.wave = Berijk ronde {0} in {1} requirement.core = Vernietig vijandige core in {0} requirement.research = Research {0} requirement.capture = Capture {0} -resume = Hervat zone:\n[lightgray]{0} bestwave = [lightgray]Beste ronde: {0} -launch = < LANCEER > launch.text = Launch -launch.title = Lancering Sucessvol -launch.next = [lightgray]volgende lanceerkans in ronde {0} -launch.unable2 = [scarlet]Lanceren niet mogelijk.[] -launch.confirm = Dit lanceert alle items in je core.\nJe zal niet meer terug kunnen keren naar deze basis. -launch.skip.confirm = Als je nu niet lanceert zul je moeten wachten tot de volgende mogelijkheid. +research.multiplayer = Only the host can research items. uncover = Ontdek configure = Configureer startinventaris loadout = Loadout @@ -512,6 +512,7 @@ weather.rain.name = Rain weather.snow.name = Snow weather.sandstorm.name = Sandstorm weather.sporestorm.name = Sporestorm +weather.fog.name = Fog sectors.unexplored = [lightgray]Unexplored sectors.resources = Resources: @@ -521,6 +522,11 @@ sectors.resume = Resume sectors.launch = Launch sectors.select = Select sectors.nonelaunch = [lightgray]none (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = Ground Zero sector.craters.name = The Craters @@ -560,6 +566,10 @@ settings.clear.confirm = Weet je zeker dat je deze data wilt verwijderen?\nDit i settings.clearall.confirm = [scarlet]WAARSCHUWING![]\nDit verwijderd alle data, inclusief saves, kaarten, technologie en bedienings-instellingen.\nAls je op doorgaat wist het spel al je data en stopt automatisch. settings.clearsaves.confirm = Are you sure you want to clear all your saves? settings.clearsaves = Clear Saves +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent]< Gepauzeerd > clear = Wis banned = [scarlet]Verbannen @@ -570,12 +580,14 @@ info.title = Informatie error.title = [crimson]Een fout is opgetreden error.crashtitle = Een fout is opgetreden unit.nobuild = [scarlet]Unit can't build +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]??? + stat.input = Input stat.output = Output stat.booster = Booster stat.tiles = Required Tiles stat.affinities = Affinities -block.unknown = [lightgray]??? stat.powercapacity = Stroomcapaciteit stat.powershot = Stroom/Schot stat.damage = Schade @@ -594,6 +606,7 @@ stat.powerconnections = Maximale Hoeveelheid Connecties stat.poweruse = Stroomverbruik stat.powerdamage = Stroom/Schade stat.itemcapacity = Materiaalcapaciteit +stat.memorycapacity = Memory Capacity stat.basepowergeneration = Standaard Stroom Generatie stat.productiontime = Productie Tijd stat.repairtime = Volledige Blok Repareertijd @@ -613,6 +626,28 @@ stat.reload = Schoten/Seconde stat.ammo = Ammunitie stat.shieldhealth = Shield Health stat.cooldowntime = Cooldown Time +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Betere miner nodig bar.noresources = Missing Resources @@ -624,6 +659,7 @@ bar.powerbalance = Stroom: {0} bar.powerstored = Opgeslagen: {0}/{1} bar.poweramount = Stroom: {0} bar.poweroutput = Stroom Output: {0} +bar.powerlines = Connections: {0}/{1} bar.items = Items: {0} bar.capacity = Capaciteit: {0} bar.unitcap = {0} {1}/{2} @@ -635,6 +671,8 @@ bar.progress = Bouw Voortgang bar.input = Input bar.output = Output +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray] dmg bullet.splashdamage = [stat]{0}[lightgray] gebied dmg ~[stat] {1}[lightgray] tiles bullet.incendiary = [stat]brandstichtend @@ -642,12 +680,15 @@ bullet.homing = [stat]doelzoekend bullet.shock = [stat]schok bullet.frag = [stat]clusterbom bullet.knockback = [stat]{0}[lightgray] terugslag +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat]bevriezend bullet.tarred = [stat]pek bullet.multiplier = [stat]{0}[lightgray]x ammunitieverdubbelaar bullet.reload = [stat]{0}[lightgray]x herlaad unit.blocks = blokken +unit.blockssquared = blocks² unit.powersecond = stroomeenheid/seconde unit.liquidsecond = vloeistofeenheid/seconde unit.itemssecond = items/seconde @@ -670,7 +711,7 @@ category.power = Stroom category.liquids = Vloeisof category.items = Items category.crafting = Productie -category.shooting = Wapens +category.function = Function category.optional = Optionele Verbeteringen setting.landscape.name = Vergrendel Landschap setting.shadows.name = Schaduwen @@ -679,7 +720,6 @@ setting.linear.name = Linear Filtering setting.hints.name = Hints setting.flow.name = Display Resource Flow Rate[scarlet] (experimental) setting.buildautopause.name = Pauzeer Bouw Automatisch -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = Animeer Water setting.animatedshields.name = Animeer Schilden setting.antialias.name = Antialias[lightgray] (herstart vereist)[] @@ -713,7 +753,6 @@ setting.fullscreen.name = Volledig scherm setting.borderlesswindow.name = Borderless Venster[lightgray] (wellicht herstart vereist) setting.fps.name = Show FPS setting.smoothcamera.name = Smooth Camera -setting.blockselectkeys.name = Toon Blok Selectie Toetscombinaties setting.vsync.name = VSync setting.pixelate.name = Pixelate [lightgray](mogelijk verminderde performance) setting.minimap.name = Toon Minimap @@ -822,6 +861,7 @@ mode.custom = Aangepaste regels rules.infiniteresources = Oneindige Resources rules.reactorexplosions = Ontploffende Reactors +rules.schematic = Schematics Allowed rules.wavetimer = Ronde timer rules.waves = Rondes rules.attack = Aanval modus @@ -847,6 +887,7 @@ rules.title.unit = Units rules.title.experimental = Experimenteel rules.title.environment = Environment rules.lighting = Belichting +rules.enemyLights = Enemy Lights rules.fire = Fire rules.explosions = Block/Unit Explosion Damage rules.ambientlight = Mist @@ -858,6 +899,7 @@ content.item.name = Items content.liquid.name = Vloeisof content.unit.name = Eenheiden content.block.name = Blokken + item.copper.name = Coper item.lead.name = Lood item.coal.name = Steenkool @@ -879,23 +921,6 @@ liquid.slag.name = Slag liquid.oil.name = Olie liquid.cryofluid.name = Koelvloeistof -item.explosiveness = [lightgray]Explosivieit: {0}% -item.flammability = [lightgray]Vlambaarheid: {0}% -item.radioactivity = [lightgray]Radioactiviteit: {0}% - -unit.health = [lightgray]Health: {0} -unit.speed = [lightgray]Snelheid: {0} -unit.weapon = [lightgray]Weapon: {0} -unit.itemcapacity = [lightgray]Item Capacity: {0} -unit.minespeed = [lightgray]Mining Speed: {0}% -unit.minepower = [lightgray]Mining Power: {0} -unit.ability = [lightgray]Ability: {0} -unit.buildspeed = [lightgray]Building Speed: {0}% - -liquid.heatcapacity = [lightgray]Warmte Capaciteit: {0} -liquid.viscosity = [lightgray]Viscositeit: {0} -liquid.temperature = [lightgray]Tempratuur: {0} - unit.dagger.name = Dolk unit.mace.name = Mace unit.fortress.name = Fortress @@ -936,6 +961,7 @@ block.cliff.name = Cliff block.sand-boulder.name = Zandkei block.grass.name = Gras block.slag.name = Slag +block.space.name = Space block.salt.name = Zout block.salt-wall.name = Salt Wall block.pebbles.name = Steentjes @@ -981,6 +1007,7 @@ block.darksand-water.name = Donker Zand Water block.char.name = Char block.dacite.name = Dacite block.dacite-wall.name = Dacite Wall +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = Ice Snow block.stone-wall.name = Stone Wall block.ice-wall.name = Ice Wall @@ -1075,6 +1102,7 @@ block.power-source.name = Power Infinite block.unloader.name = Unloader block.vault.name = Kluis block.wave.name = Golf +block.tsunami.name = Tsunami block.swarmer.name = Swarmer block.salvo.name = Salvo block.ripple.name = Ripple @@ -1114,6 +1142,7 @@ block.arc.name = Arc block.rtg-generator.name = RTG Generator block.spectre.name = Spectre block.meltdown.name = Meltdown +block.foreshadow.name = Foreshadow block.container.name = Doos block.launch-pad.name = Lanceerplatform block.launch-pad-large.name = Groot Lanceerplatform @@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor block.logic-display.name = Logic Display block.large-logic-display.name = Large Logic Display block.memory-cell.name = Memory Cell +block.memory-bank.name = Memory Bank team.blue.name = blauw team.crux.name = rood @@ -1302,4 +1332,4 @@ block.cyclone.description = A large rapid fire turret. block.spectre.description = A large turret which shoots two powerful bullets at once. block.meltdown.description = A large turret which shoots powerful long-range beams. block.repair-point.description = Continuously heals the closest damaged unit in its vicinity. -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. \ No newline at end of file +block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index 4f2ed1fdcd..babc376e82 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -55,6 +55,7 @@ schematic.saved = Blauwdruk opgeslagen. schematic.delete.confirm = This schematic will be utterly eradicated. schematic.rename = Blauwdruk Hernoemen schematic.info = {0}x{1}, {2} blokken +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = Je overleefde tot aanvalsgolf: [accent]{0}[]. stat.enemiesDestroyed = Vijanden vernietigd:[accent] {0} @@ -100,7 +101,6 @@ done = Klaar feature.unsupported = Uw apparaat ondersteunt deze functie niet. mods.alphainfo = Mods zijn nog in alfa en [scarlet] kunnen zeer onstabiel zijn[].\nMeld problemen die je ondervindt op de Mindustry Github of Discord. -mods.alpha = [accent](Alfa) mods = Mods mods.none = [lightgray]Geen mods gevonden! mods.guide = Handleiding tot Modding @@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] om te selecter+kopieren pausebuilding = [accent][[{0}][] om het bouwen te pauseren resumebuilding = [scarlet][[{0}][] om verder te gaan met bouwen wave = [accent]Golf {0} +wave.cap = [accent]Wave {0}/{1} wave.waiting = [lightgray]Golf in {0} wave.waveInProgress = [lightgray]Golf bezig waiting = [lightgray]Wachten... waiting.players = Aan het wachten op spelers... wave.enemies = [lightgray]{0} Vijanden Over wave.enemy = [lightgray]{0} Vijand Over +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = Laad Afbeelding saveimage = Sla Afbeelding Op unknown = Onbekend @@ -328,6 +331,7 @@ editor.generation = Generation: editor.ingame = Edit In-Game editor.publish.workshop = Publish On Workshop editor.newmap = New Map +editor.center = Center workshop = Workshop waves.title = Waves waves.remove = Remove @@ -416,6 +420,7 @@ filters.empty = [lightgray]No filters! Add one with the button below. filter.distort = Distort filter.noise = Noise filter.enemyspawn = Enemy Spawn Select +filter.spawnpath = Path To Spawn filter.corespawn = Core Select filter.median = Median filter.oremedian = Ore Median @@ -440,6 +445,7 @@ filter.option.amount = Amount filter.option.block = Block filter.option.floor = Floor filter.option.flooronto = Target Floor +filter.option.target = Target filter.option.wall = Wall filter.option.ore = Ore filter.option.floor2 = Secondary Floor @@ -471,15 +477,9 @@ requirement.wave = Reach Wave {0} in {1} requirement.core = Destroy Enemy Core in {0} requirement.research = Research {0} requirement.capture = Capture {0} -resume = Resume Zone:\n[lightgray]{0} bestwave = [lightgray]Best Wave: {0} -launch = < LAUNCH > launch.text = Launch -launch.title = Launch Successful -launch.next = [lightgray]next opportunity at wave {0} -launch.unable2 = [scarlet]Unable to LAUNCH.[] -launch.confirm = This will launch all resources in your core.\nYou will not be able to return to this base. -launch.skip.confirm = If you skip now, you will not be able to launch until later waves. +research.multiplayer = Only the host can research items. uncover = Uncover configure = Configure Loadout loadout = Loadout @@ -512,6 +512,7 @@ weather.rain.name = Rain weather.snow.name = Snow weather.sandstorm.name = Sandstorm weather.sporestorm.name = Sporestorm +weather.fog.name = Fog sectors.unexplored = [lightgray]Unexplored sectors.resources = Resources: @@ -521,6 +522,11 @@ sectors.resume = Resume sectors.launch = Launch sectors.select = Select sectors.nonelaunch = [lightgray]none (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = Ground Zero sector.craters.name = The Craters @@ -560,6 +566,10 @@ settings.clear.confirm = Are you sure you want to clear this data?\nWhat is done settings.clearall.confirm = [scarlet]WARNING![]\nThis will clear all data, including saves, maps, unlocks and keybinds.\nOnce you press 'ok' the game will wipe all data and automatically exit. settings.clearsaves.confirm = Are you sure you want to clear all your saves? settings.clearsaves = Clear Saves +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent]< Paused > clear = Clear banned = [scarlet]Banned @@ -570,12 +580,14 @@ info.title = Info error.title = [crimson]An error has occured error.crashtitle = An error has occured unit.nobuild = [scarlet]Unit can't build +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]??? + stat.input = Input stat.output = Output stat.booster = Booster stat.tiles = Required Tiles stat.affinities = Affinities -block.unknown = [lightgray]??? stat.powercapacity = Power Capacity stat.powershot = Power/Shot stat.damage = Damage @@ -594,6 +606,7 @@ stat.powerconnections = Max Connections stat.poweruse = Power Use stat.powerdamage = Power/Damage stat.itemcapacity = Item Capacity +stat.memorycapacity = Memory Capacity stat.basepowergeneration = Base Power Generation stat.productiontime = Production Time stat.repairtime = Block Full Repair Time @@ -613,6 +626,28 @@ stat.reload = Shots/Second stat.ammo = Ammo stat.shieldhealth = Shield Health stat.cooldowntime = Cooldown Time +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Better Drill Required bar.noresources = Missing Resources @@ -624,6 +659,7 @@ bar.powerbalance = Power: {0}/s bar.powerstored = Stored: {0}/{1} bar.poweramount = Power: {0} bar.poweroutput = Power Output: {0} +bar.powerlines = Connections: {0}/{1} bar.items = Items: {0} bar.capacity = Capacity: {0} bar.unitcap = {0} {1}/{2} @@ -635,6 +671,8 @@ bar.progress = Build Progress bar.input = Input bar.output = Output +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray] damage bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.incendiary = [stat]incendiary @@ -642,12 +680,15 @@ bullet.homing = [stat]homing bullet.shock = [stat]shock bullet.frag = [stat]frag bullet.knockback = [stat]{0}[lightgray] knockback +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat]freezing bullet.tarred = [stat]tarred bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier bullet.reload = [stat]{0}[lightgray]x fire rate unit.blocks = blocks +unit.blockssquared = blocks² unit.powersecond = power units/second unit.liquidsecond = liquid units/second unit.itemssecond = items/second @@ -670,7 +711,7 @@ category.power = Power category.liquids = Liquids category.items = Items category.crafting = Input/Output -category.shooting = Shooting +category.function = Function category.optional = Optional Enhancements setting.landscape.name = Lock Landscape setting.shadows.name = Shadows @@ -679,7 +720,6 @@ setting.linear.name = Linear Filtering setting.hints.name = Hints setting.flow.name = Display Resource Flow Rate[scarlet] (experimental) setting.buildautopause.name = Auto-Pause Building -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = Animated Water setting.animatedshields.name = Animated Shields setting.antialias.name = Antialias[lightgray] (requires restart)[] @@ -691,7 +731,7 @@ setting.touchscreen.name = Touchscreen Controls setting.fpscap.name = Max FPS setting.fpscap.none = None setting.fpscap.text = {0} FPS -setting.uiscale.name = UI Scaling[lightgray] (require restart)[] +setting.uiscale.name = UI Scaling[lightgray] (requires restart)[] setting.swapdiagonal.name = Always Diagonal Placement setting.difficulty.training = training setting.difficulty.easy = easy @@ -713,7 +753,6 @@ setting.fullscreen.name = Fullscreen setting.borderlesswindow.name = Borderless Window[lightgray] (may require restart) setting.fps.name = Show FPS setting.smoothcamera.name = Smooth Camera -setting.blockselectkeys.name = Show Block Select Keys setting.vsync.name = VSync setting.pixelate.name = Pixelate [lightgray](may decrease performance, disables animations) setting.minimap.name = Show Minimap @@ -822,6 +861,7 @@ mode.custom = Custom Rules rules.infiniteresources = Infinite Resources rules.reactorexplosions = Reactor Explosions +rules.schematic = Schematics Allowed rules.wavetimer = Wave Timer rules.waves = Waves rules.attack = Attack Mode @@ -847,6 +887,7 @@ rules.title.unit = Units rules.title.experimental = Experimental rules.title.environment = Environment rules.lighting = Lighting +rules.enemyLights = Enemy Lights rules.fire = Fire rules.explosions = Block/Unit Explosion Damage rules.ambientlight = Ambient Light @@ -858,6 +899,7 @@ content.item.name = Items content.liquid.name = Liquids content.unit.name = Units content.block.name = Blocks + item.copper.name = Copper item.lead.name = Lead item.coal.name = Coal @@ -879,23 +921,6 @@ liquid.slag.name = Slag liquid.oil.name = Oil liquid.cryofluid.name = Cryofluid -item.explosiveness = [lightgray]Explosiveness: {0}% -item.flammability = [lightgray]Flammability: {0}% -item.radioactivity = [lightgray]Radioactivity: {0}% - -unit.health = [lightgray]Health: {0} -unit.speed = [lightgray]Speed: {0} -unit.weapon = [lightgray]Weapon: {0} -unit.itemcapacity = [lightgray]Item Capacity: {0} -unit.minespeed = [lightgray]Mining Speed: {0}% -unit.minepower = [lightgray]Mining Power: {0} -unit.ability = [lightgray]Ability: {0} -unit.buildspeed = [lightgray]Building Speed: {0}% - -liquid.heatcapacity = [lightgray]Heat Capacity: {0} -liquid.viscosity = [lightgray]Viscosity: {0} -liquid.temperature = [lightgray]Temperature: {0} - unit.dagger.name = Dagger unit.mace.name = Mace unit.fortress.name = Fortress @@ -936,6 +961,7 @@ block.cliff.name = Cliff block.sand-boulder.name = Sand Boulder block.grass.name = Grass block.slag.name = Slag +block.space.name = Space block.salt.name = Salt block.salt-wall.name = Salt Wall block.pebbles.name = Pebbles @@ -981,6 +1007,7 @@ block.darksand-water.name = Dark Sand Water block.char.name = Char block.dacite.name = Dacite block.dacite-wall.name = Dacite Wall +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = Ice Snow block.stone-wall.name = Stone Wall block.ice-wall.name = Ice Wall @@ -1075,6 +1102,7 @@ block.power-source.name = Power Infinite block.unloader.name = Unloader block.vault.name = Vault block.wave.name = Wave +block.tsunami.name = Tsunami block.swarmer.name = Swarmer block.salvo.name = Salvo block.ripple.name = Ripple @@ -1114,6 +1142,7 @@ block.arc.name = Arc block.rtg-generator.name = RTG Generator block.spectre.name = Spectre block.meltdown.name = Meltdown +block.foreshadow.name = Foreshadow block.container.name = Container block.launch-pad.name = Launch Pad block.launch-pad-large.name = Large Launch Pad @@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor block.logic-display.name = Logic Display block.large-logic-display.name = Large Logic Display block.memory-cell.name = Memory Cell +block.memory-bank.name = Memory Bank team.blue.name = blue team.crux.name = red @@ -1302,4 +1332,4 @@ block.cyclone.description = A large rapid fire turret. block.spectre.description = A large turret which shoots two powerful bullets at once. block.meltdown.description = A large turret which shoots powerful long-range beams. block.repair-point.description = Continuously heals the closest damaged unit in its vicinity. -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. \ No newline at end of file +block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index 80502bb870..dea96a80a0 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -14,14 +14,14 @@ link.f-droid.description = F-Droid catalogue listing link.wiki.description = Oficjana Wiki Mindustry link.suggestions.description = Zaproponuj nowe funkcje linkfail = Nie udało się otworzyć linku!\nURL został skopiowany. -screenshot = Zapisano zdjęcie w {0} +screenshot = Zapisano zrzut ekranu w {0} screenshot.invalid = Zrzut ekranu jest zbyt duży. Najprawdopodobniej brakuje miejsca w pamięci urządzenia. gameover = Koniec Gry gameover.pvp = Zwyciężyła drużyna [accent]{0}[]! -highscore = [accent] Nowy rekord! +highscore = [accent]Nowy rekord! copied = Skopiowano. -indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[]. -indev.notready = This part of the game isn't ready yet +indev.popup = [accent]Wersja v6[] jest obecnie w [accent]alphie[].\n[lightgray]Oznacza to, że:[]\n[scarlet]- Kampania nie jest skończona[]\n- Brakuje zawartości\n - Większość [scarlet]SI jednostek[] nie działa poprawnie\n- Wiele jednostek jest niedokończonych\n- Wszystko to, co widzisz, może ulec zmianie lub usunięciu.\n\nZgłaszaj błędy i awarie na [accent]Githubie[]. +indev.notready = Ta część gry nie jest jeszcze ukończona load.sound = Dźwięki load.map = Mapy @@ -55,6 +55,7 @@ schematic.saved = Schemat zapisany. schematic.delete.confirm = Ten schemat zostanie usunięty. schematic.rename = Zmień nazwę schematu schematic.info = {0}x{1}, {2} bloków +schematic.disabled = [scarlet]Schematy są wyłączone[]\nNie możesz używać schematów na tej [accent]mapie[] lub [accent]serwerze. stat.wave = Fale powstrzymane:[accent] {0} stat.enemiesDestroyed = Przeciwnicy zniszczeni:[accent] {0} @@ -100,14 +101,13 @@ done = Gotowe feature.unsupported = Twoje urządzenie nie wspiera tej funkcji. mods.alphainfo = Pamiętaj, że mody są wersji alpha, i[scarlet] mogą być pełne błędów[].\nZgłaszaj wszystkie znalezione problemy na Mindustry GitHub lub Discord. -mods.alpha = [scarlet](Alpha) mods = Mody mods.none = [lightgray]Nie znaleziono modów! mods.guide = Poradnik do modów mods.report = Zgłoś Błąd mods.openfolder = Otwórz folder z modami mods.reload = Przeładuj -mods.reloadexit = The game will now exit, to reload mods. +mods.reloadexit = Gra zostanie teraz zamknięta, aby ponownie załadować mody. mod.display = [gray]Mod:[orange] {0} mod.enabled = [lightgray]Włączony mod.disabled = [scarlet]Wyłączony @@ -115,7 +115,7 @@ mod.disable = Wyłącz mod.content = Content: mod.delete.error = Nie udało się usunąć moda. Plik może być w użyciu. mod.requiresversion = [scarlet]Wymaga gry w wersji co najmniej: [accent]{0} -mod.outdated = [scarlet]Not compatible with V6 (no minGameVersion: 105) +mod.outdated = [scarlet]Niekompatybilne z wersją v6 (no minGameVersion: 105) mod.missingdependencies = [scarlet]Brakujące zależności: {0} mod.erroredcontent = [scarlet]Content Errors mod.errors = Wystąpił błąd podczas ładowania treści. @@ -127,7 +127,7 @@ mod.reloadrequired = [scarlet]Wymagany restart mod.import = Importuj Mod mod.import.file = Importuj Plik mod.import.github = Importuj mod z GitHuba -mod.jarwarn = [scarlet]JAR mods are inherently unsafe.[]\nMake sure you're importing this mod from a trustworthy source! +mod.jarwarn = [scarlet]Mody JAR są niebezpieczne.[]\nUpewnij się, że importujesz ten mod z dobrze znanego źródła! mod.item.remove = Ten przedmiot jest częścią moda[accent] '{0}'[]. Aby usunąć go, odinstaluj modyfikację. mod.remove.confirm = Ten mod zostanie usunięty. mod.author = [lightgray]Autor:[] {0} @@ -148,12 +148,12 @@ techtree = Drzewo Technologiczne research.list = [lightgray]Badania: research = Badaj researched = [lightgray]{0} zbadane. -research.progress = {0}% complete +research.progress = {0}% ukończone players = {0} graczy players.single = {0} gracz -players.search = search +players.search = wyszukaj players.notfound = [gray]nie znaleziono graczy -server.closing = [accent] Zamykanie serwera... +server.closing = [accent]Zamykanie serwera... server.kicked.kick = Zostałeś wyrzucony z serwera! server.kicked.whitelist = Nie ma cię tu na białej liście. server.kicked.serverClose = Serwer został zamknięty. @@ -171,11 +171,11 @@ server.kicked.customClient = Ten serwer nie wspomaga wersji deweloperskich. Pobi server.kicked.gameover = Koniec gry! server.kicked.serverRestarting = Restart serwera. server.versions = Twoja wersja gry:[accent] {0}[]\nWersja gry serwera:[accent] {1}[] -host.info = Przycisk [accent]host[] hostuje serwer na porcie [scarlet]6567[]. \nKażdy w tej samej sieci [lightgray]wifi lub hotspocie[] powinien zobaczyć twój serwer.\n\nJeśli chcesz, aby każdy z twoim IP mógł dołączyć, musisz wykonać [accent]przekierowywanie portów[].\n\n[lightgray]Notka: Jeśli ktokolwiek ma problem z dołączeniem do gry lokalnej, upewnij się, że udostępniłeś Mindustry dostęp do sieci w ustawieniach zapory (firewall). Zauważ, że niektóre sieci publiczne mogą nie zezwalać na wykrycie serwerów. -join.info = Tutaj możesz wpisać [accent]adres IP serwera[] aby do niego dołączyć lub wyszukać [accent]serwery w lokalnej sieci[], do których możesz dołączyć.\nGra wieloosobowa na LAN i WAN jest wspierana.\n\n[lightgray]Notka: Nie ma automatycznej listy wszystkich serwerów; jeśli chcesz dołączyć przez IP, musisz zapytać hosta o jego IP, które można znaleźć po wpisaniu "my ip" w przeglądarce na urządzeniu hosta. +host.info = Przycisk [accent]host[] hostuje serwer na porcie [scarlet]6567[]. \nKażdy w tej samej sieci [lightgray]wifi lub hotspocie[] powinien zobaczyć twój serwer na ich liście serwerów.\n\nJeśli chcesz, aby każdy z twoim IP mógł dołączyć, musisz wykonać [accent]przekierowywanie portów[].\n\n[lightgray]Notka: Jeśli ktokolwiek ma problem z dołączeniem do gry lokalnej, upewnij się, że udostępniłeś Mindustry dostęp do sieci w ustawieniach zapory (firewall). Zauważ, że niektóre sieci publiczne mogą nie zezwalać na wykrycie serwerów. +join.info = Tutaj możesz wpisać [accent]adres IP serwera[] aby do niego dołączyć lub wyszukać [accent]serwery w lokalnej sieci[] lub wyszukać [accent]publiczne[] serwery, do których możesz dołączyć.\nGra wieloosobowa na LAN i WAN jest wspierana.\n\n[lightgray]Jeśli chcesz dołączyć przez IP, musisz zapytać hosta o jego IP, które można znaleźć po wpisaniu "my ip" w przeglądarce na urządzeniu hosta. hostserver = Stwórz Serwer invitefriends = Zaproś Znajomych -hostserver.mobile = Hostuj\nGrę +hostserver.mobile = Hostuj Grę host = Hostuj hosting = [accent]Otwieranie serwera... hosts.refresh = Odśwież @@ -208,11 +208,11 @@ server.outdated.client = [crimson]Przestarzały klient![] server.version = [gray]Wersja: {0} server.custombuild = [accent]Zmodowany klient confirmban = Jesteś pewny, że chcesz zbanować "{0}[white]"? -confirmkick = Jesteś pewny, że chcesz wyrzucić {0}[white]"? -confirmvotekick = Jesteś pewny, że chcesz głosować za wyrzuceniem {0}[white]"? +confirmkick = Jesteś pewny, że chcesz wyrzucić "{0}[white]"? +confirmvotekick = Jesteś pewny, że chcesz głosować za wyrzuceniem "{0}[white]"? confirmunban = Jesteś pewny, że chcesz odbanować tego gracza? -confirmadmin = Jesteś pewny, że chcesz dać rangę admina {0}[white]"? -confirmunadmin = Jesteś pewny, że chcesz zabrać rangę admina {0}[white]"? +confirmadmin = Jesteś pewny, że chcesz dać rangę admina "{0}[white]"? +confirmunadmin = Jesteś pewny, że chcesz zabrać rangę admina "{0}[white]"? joingame.title = Dołącz do gry joingame.ip = IP: disconnect = Rozłączono. @@ -237,7 +237,7 @@ save.delete = Usuń save.export = Eksportuj save.import.invalid = [accent]Zapis gry jest niepoprawny! save.import.fail = [crimson]Nie udało się zaimportować zapisu: [accent]{0} -save.export.fail = [crimson]Nie można wyeksportować zapisu: [accent]{0} +save.export.fail = [crimson]Nie udało się wyeksportować zapisu: [accent]{0} save.import = Importuj Zapis save.newslot = Zapisz nazwę: save.rename = Zmień nazwę @@ -255,14 +255,14 @@ save.wave = Fala {0} save.mode = Tryb Gry: {0} save.date = Ostatnio Zapisane: {0} save.playtime = Czas gry: {0} -warning = Uwaga +warning = Uwaga. confirm = Potwierdź delete = Usuń view.workshop = Pokaż w Warsztacie workshop.listing = Edytuj pozycję w Warsztacie ok = OK open = Otwórz -customize = Dostosuj +customize = Dostosuj zasady cancel = Anuluj openlink = Otwórz Link copylink = Kopiuj Link @@ -272,30 +272,33 @@ data.import = Importuj Dane data.openfolder = Otwórz folder danych data.exported = Dane wyeksportowane. data.invalid = Nieprawidłowe dane gry. -data.import.confirm = Zaimportowanie zewnętrznych danych usunie[scarlet] wszystkie[] obecne dane gry.\n[accent]Nie można tego cofnąć![]\n\nGdy dane zostaną zimportowane, gra automatycznie się wyłączy. +data.import.confirm = Zaimportowanie zewnętrznych danych nadpisze[scarlet] wszystkie[] obecne dane gry.\n[accent]Nie można tego cofnąć![]\n\nGdy dane zostaną zaimportowane, gra automatycznie się wyłączy. quit.confirm = Czy na pewno chcesz wyjść? quit.confirm.tutorial = Jesteś pewien?\nSamouczek może zostać powtórzony w[accent] Ustawienia->Gra->Ponów samouczek.[] loading = [accent]Ładowanie... reloading = [accent]Przeładowywanie Modów... saving = [accent]Zapisywanie... -respawn = [accent][[{0}][] to respawn in core +respawn = [accent][[{0}][] by odrodzić się w rdzeniu cancelbuilding = [accent][[{0}][] by wyczyścić plan selectschematic = [accent][[{0}][] by wybrać+skopiować pausebuilding = [accent][[{0}][] by wstrzymać budowę resumebuilding = [scarlet][[{0}][] by kontynuować budowę wave = [accent]Fala {0} -wave.waiting = Fala za {0} +wave.cap = [accent]Wave {0}/{1} +wave.waiting = [lightgray]Fala za {0} wave.waveInProgress = [lightgray]Fala w trakcie waiting = [lightgray]Oczekiwanie... waiting.players = Oczekiwanie na graczy... wave.enemies = Pozostało [lightgray]{0} wrogów wave.enemy = Pozostał [lightgray]{0} wróg +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = Załaduj Obraz saveimage = Zapisz Obraz unknown = Nieznane custom = Własne builtin = Wbudowane -map.delete.confirm = Jesteś pewny, że chcesz usunąć tę mapę? Nie będzie można jej przywrócić. +map.delete.confirm = Jesteś pewny, że chcesz usunąć tę mapę? Nie będzie można jej przywrócić! map.random = [accent]Losowa Mapa map.nospawn = Ta mapa nie zawiera żadnego rdzenia! Dodaj [accent]pomarańczowy[] rdzeń do tej mapy w edytorze. map.nospawn.pvp = Ta mapa nie ma żadnego rdzenia przeciwnika, aby mogli się zrespić przeciwnicy! Dodaj[scarlet] inny niż pomarańczowy[] rdzeń do mapy w edytorze. @@ -309,7 +312,7 @@ workshop.info = Informacja o pozycji changelog = Historia aktualizacji (opcjonalna): eula = Umowa Użytkownika Końcowego (EULA) Steam missing = Ta pozycja została przeniesiona bądź usunięta.\n[lightgray]Pozycja na Warsztacie została automatycznie odłączona. -publishing = [accent]Trwa publikowanie... +publishing = [accent]Publikowanie... publish.confirm = Czy jesteś pewien, że chcesz to opublikować?\n\n[lightgray]Najpierw upewnij się, że zgadzasz się z umową EULA Warsztatu, w przeciwnym razie twoje pozycje nie będą widoczne! publish.error = Błąd podczas publikowania pozycji: {0} steam.error = Nie udało się zainicjować serwisów Steam.\nBłąd: {0} @@ -328,6 +331,7 @@ editor.generation = Generacja: editor.ingame = Edytuj w Grze editor.publish.workshop = Opublikuj w Warsztacie editor.newmap = Nowa Mapa +editor.center = Center workshop = Warsztat waves.title = Fale waves.remove = Usuń @@ -386,10 +390,10 @@ editor.export = Eksportuj... editor.exportfile = Eksportuj Plik editor.exportfile.description = Eksportuj plik mapy editor.exportimage = Eksportuj Obraz Terenu -editor.exportimage.description = Eksportuj plik obrazu terenu +editor.exportimage.description = Eksportuj plik obrazu zawierający tylko podstawowy teren editor.loadimage = Załaduj Teren editor.saveimage = Zapisz Teren -editor.unsaved = [scarlet]Masz niezapisane zmiany![]\nCzy na pewno chcesz wyjść? +editor.unsaved = Czy na pewno chcesz wyjść?[]\n[scarlet]Wszelkie niezapisane zmiany zostaną utracone. editor.resizemap = Zmień Rozmiar Mapy editor.mapname = Nazwa Mapy: editor.overwrite = [accent]Uwaga!\nSpowoduje to nadpisanie istniejącej mapy. @@ -416,6 +420,7 @@ filters.empty = [lightgray]Brak filtrów! Dodaj jeden za pomocą przycisku poni filter.distort = Zniekształcanie filter.noise = Szum filter.enemyspawn = Wybierz spawn przeciwnika +filter.spawnpath = Path To Spawn filter.corespawn = Wybierz rdzeń filter.median = Mediana filter.oremedian = Mediana Rud @@ -440,6 +445,7 @@ filter.option.amount = Ilość filter.option.block = Blok filter.option.floor = Podłoga filter.option.flooronto = Podłoga Docelowa +filter.option.target = Target filter.option.wall = Ściana filter.option.ore = Ruda filter.option.floor2 = Druga Podłoga @@ -469,24 +475,18 @@ locked = Zablokowane complete = [lightgray]Ukończone: requirement.wave = Osiągnij falę {0} w {1} requirement.core = Zniszcz Rdzeń wroga w {0} -requirement.research = Research {0} -requirement.capture = Capture {0} -resume = Kontynuuj Strefę:\n[lightgray]{0} +requirement.research = Zbadaj {0} +requirement.capture = Zdobądź {0} bestwave = [lightgray]Najwyższa fala: {0} -launch = < WYSTRZEL > -launch.text = Launch -launch.title = Wystrzelenie udane -launch.next = [lightgray]Następna okazja przy fali {0} -launch.unable2 = [scarlet]WYSTRZELENIE niedostępne.[] -launch.confirm = Spowoduje to wystrzelenie wszystkich surowców w rdzeniu.\nNie będziesz mógł wrócić do tej bazy. -launch.skip.confirm = Jeśli teraz przejdziesz do kolejnej fali, nie będziesz miał możliwości wystrzelenia do czasu pokonania dalszych fal. +launch.text = Wystrzel +research.multiplayer = Only the host can research items. uncover = Odkryj configure = Skonfiguruj Ładunek loadout = Loadout -resources = Resources +resources = Zasoby bannedblocks = Zabronione bloki addall = Dodaj wszystkie -launch.destination = Destination: {0} +launch.destination = Cell: {0} configure.invalid = Ilość musi być liczbą pomiędzy 0 a {0}. zone.unlocked = [lightgray]Strefa {0} odblokowana. zone.requirement.complete = Fala {0} osiągnięta:\n{1} Wymagania strefy zostały spełnione. @@ -500,7 +500,7 @@ boss.health = Zdrowie Bossa connectfail = [crimson]Nie można połączyć się z serwerem:\n\n[accent]{0} error.unreachable = Serwer niedostępny.\nCzy adres jest wpisany poprawnie? error.invalidaddress = Niepoprawny adres. -error.timedout = Przekroczono limit czasu!\nUpewnij się, że host ma ustawione przekierowanie portu oraz poprawność wpisanego adresu! +error.timedout = Przekroczono limit czasu!\nUpewnij się, że host ma ustawione przekierowanie portu oraz sprawdź poprawność wpisanego adresu! error.mismatch = Błąd pakietu:\nprawdopodobne niedopasowanie klienta/serwera.\nUpewnij się, że ty i host macie najnowszą wersję Mindustry! error.alreadyconnected = Jesteś już połączony. error.mapnotfound = Plik mapy nie został znaleziony! @@ -508,12 +508,13 @@ error.io = Błąd sieciowy I/O. error.any = Nieznany błąd sieci. error.bloom = Nie udało się załadować bloom.\nTwoje urządzenie może nie wspierać tej funkcji. -weather.rain.name = Rain -weather.snow.name = Snow -weather.sandstorm.name = Sandstorm -weather.sporestorm.name = Sporestorm +weather.rain.name = Deszcz +weather.snow.name = Śnieg +weather.sandstorm.name = Burza piaskowa +weather.sporestorm.name = Burza zarodników +weather.fog.name = Fog -sectors.unexplored = [lightgray]Unexplored +sectors.unexplored = [lightgray]Niezbadane sectors.resources = Resources: sectors.production = Production: sectors.stored = Stored: @@ -521,6 +522,11 @@ sectors.resume = Resume sectors.launch = Launch sectors.select = Select sectors.nonelaunch = [lightgray]none (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = Punkt Zerowy sector.craters.name = Kratery @@ -535,8 +541,8 @@ sector.saltFlats.name = Solne Równiny sector.fungalPass.name = Grzybowa Przełęcz sector.groundZero.description = Optymalna lokalizacja, aby rozpocząć jeszcze raz. Niskie zagrożenie. Niewiele zasobów.\nZbierz jak najwięcej miedzi i ołowiu, tyle ile jest możliwe.\nPrzejdź do następnej strefy jak najszybciej. -sector.frozenForest.description = Nawet tutaj, bliżej gór, zarodniki rozprzestrzeniły się. Niskie temperatury nie mogą ich zatrzymać na zawsze.\n\nRozpocznij przedsięwzięcie od władzy. Buduj generatory spalinowe. Naucz się korzystać z naprawiaczy. -sector.saltFlats.description = Na obrzeżach pustyni spoczywają Solne Równiny. Można tu znaleźć niewiele surowców.\n\nWrogowie zbudowali tu bazę składującą surowce. Zniszcz ich rdżeń. Zniszcz wszystko co stanie ci na drodze. +sector.frozenForest.description = Nawet tutaj, bliżej gór, zarodniki rozprzestrzeniły się. Niskie temperatury nie mogą ich zatrzymać na zawsze.\n\nRozpocznij przedsięwzięcie od prądu. Buduj generatory spalinowe. Naucz się korzystać z naprawiaczy. +sector.saltFlats.description = Na obrzeżach pustyni spoczywają Solne Równiny. Można tu znaleźć niewiele surowców.\n\nWrogowie zbudowali tu bazę składującą surowce. Zniszcz ich rdzeń. Zniszcz wszystko co stanie ci na drodze. sector.craters.description = W tym kraterze zebrała się woda. Pozostałość dawnych wojen. Odzyskaj ten teren. Wykop piasek. Wytop metaszkło. Pompuj wodę do działek obronnych i wierteł by je schłodzić sector.ruinousShores.description = Za pustkowiami ciągnie się linia brzegowa. Kiedyś znajdowała się tu przybrzeżna linia obronna. Niewiele z niej zostało. Ostały się tylko podstawowe struktury obronne, z reszty został tylko złom.\nKontynuuj eksploracje. Odkryj pozostawioną tu technologię. sector.stainedMountains.description = W głębi lądu leżą góry, jeszcze nieskażone przez zarodniki.\nWydobądź obfity tytan w tym obszarze. Dowiedz się, jak z niego korzystać.\n\nObecność wroga jest tutaj większa. Nie daj im czasu na wysłanie swoich najsilniejszych jednostek. @@ -560,6 +566,10 @@ settings.clear.confirm = Czy jesteś pewien że chcesz usunąć te dane?\nPo tym settings.clearall.confirm = [scarlet]UWAGA![]\nTo wykasuje wszystkie dane, włącznie z zapisanymi grami i mapami, ustawienami, i znanymi technologiami.\nKiedy naciśniesz 'ok', gra usunie wszystkie swoje dane i automatycznie wyłączy się. settings.clearsaves.confirm = Are you sure you want to clear all your saves? settings.clearsaves = Clear Saves +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent]< Wstrzymano > clear = Wyczyść banned = [scarlet]Zbanowano @@ -570,12 +580,14 @@ info.title = Informacje error.title = [crimson]Wystąpił błąd error.crashtitle = Wystąpił błąd unit.nobuild = [scarlet]Jednostka nie może budować +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]??? + stat.input = Wejście stat.output = Wyjście stat.booster = Wzmacniacz stat.tiles = Wymagane Pola stat.affinities = Uwydajnienie -block.unknown = [lightgray]??? stat.powercapacity = Pojemność mocy stat.powershot = moc/strzał stat.damage = Obrażenia @@ -594,6 +606,7 @@ stat.powerconnections = Maksymalna ilość połączeń stat.poweruse = Zużycie prądu stat.powerdamage = Moc/Zniszczenia stat.itemcapacity = Pojemność przedmiotów +stat.memorycapacity = Memory Capacity stat.basepowergeneration = Podstawowa generacja mocy stat.productiontime = Czas produkcji stat.repairtime = Czas pełnej naprawy bloku @@ -613,6 +626,28 @@ stat.reload = Strzałów/sekundę stat.ammo = Amunicja stat.shieldhealth = Shield Health stat.cooldowntime = Cooldown Time +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Wymagane Lepsze Wiertło bar.noresources = Missing Resources @@ -624,6 +659,7 @@ bar.powerbalance = Moc: {0} bar.powerstored = Zmagazynowano: {0}/{1} bar.poweramount = Moc: {0} bar.poweroutput = Wyjście mocy: {0} +bar.powerlines = Connections: {0}/{1} bar.items = Przedmiotów: {0} bar.capacity = Pojemność: {0} bar.unitcap = {0} {1}/{2} @@ -635,6 +671,8 @@ bar.progress = Postęp Budowy bar.input = Wejście bar.output = Wyjście +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray] Obrażenia bullet.splashdamage = [stat]{0}[lightgray] Obrażenia obszarowe ~[stat] {1}[lightgray] kratki bullet.incendiary = [stat]zapalający @@ -642,12 +680,15 @@ bullet.homing = [stat]naprowadzający bullet.shock = [stat]piorunowy bullet.frag = [stat]fragmentacyjny bullet.knockback = [stat]{0}[lightgray] odrzut +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat]zamrażający bullet.tarred = [stat]smolny bullet.multiplier = [stat]{0}[lightgray]x mnożnik amunicji bullet.reload = [stat]{0}[lightgray]x szybkość ataku unit.blocks = bloki +unit.blockssquared = blocks² unit.powersecond = jednostek prądu na sekundę unit.liquidsecond = jednostek płynu na sekundę unit.itemssecond = przedmiotów na sekundę @@ -670,7 +711,7 @@ category.power = Prąd category.liquids = Płyny category.items = Przedmioty category.crafting = Przetwórstwo -category.shooting = Strzelanie +category.function = Function category.optional = Dodatkowe ulepszenia setting.landscape.name = Zablokuj tryb panoramiczny setting.shadows.name = Cienie @@ -679,7 +720,6 @@ setting.linear.name = Filtrowanie Liniowe setting.hints.name = Podpowiedzi setting.flow.name = Wyświetl szybkość przepływu zasobów[scarlet] (eksperymentalne) setting.buildautopause.name = Automatycznie zatrzymaj budowanie -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = Animowana woda setting.animatedshields.name = Animowana tarcza setting.antialias.name = Antyaliasing[lightgray] (wymaga restartu)[] @@ -713,7 +753,6 @@ setting.fullscreen.name = Pełny ekran setting.borderlesswindow.name = Bezramkowe okno[lightgray] (może wymagać restartu) setting.fps.name = Pokazuj FPS oraz ping setting.smoothcamera.name = Smooth Camera -setting.blockselectkeys.name = Pokazuj skróty klawiszowe bloków setting.vsync.name = Synchronizacja pionowa setting.pixelate.name = Pikselacja [lightgray](wyłącza animacje) setting.minimap.name = Pokaż Minimapę @@ -822,6 +861,7 @@ mode.custom = Własny tryb rules.infiniteresources = Nieskończone zasoby rules.reactorexplosions = Eksplozje reaktorów +rules.schematic = Schematics Allowed rules.wavetimer = Zegar fal rules.waves = Fale rules.attack = Tryb ataku @@ -847,6 +887,7 @@ rules.title.unit = Jednostki rules.title.experimental = Eksperymentalne rules.title.environment = Environment rules.lighting = Oświetlenie +rules.enemyLights = Enemy Lights rules.fire = Fire rules.explosions = Block/Unit Explosion Damage rules.ambientlight = Otaczające Światło @@ -858,6 +899,7 @@ content.item.name = Przedmioty content.liquid.name = Płyny content.unit.name = Jednostki content.block.name = Klocki + item.copper.name = Miedź item.lead.name = Ołów item.coal.name = Węgiel @@ -879,23 +921,6 @@ liquid.slag.name = Żużel liquid.oil.name = Ropa liquid.cryofluid.name = Lodociecz -item.explosiveness = [lightgray]Wybuchowość: {0} -item.flammability = [lightgray]Palność: {0} -item.radioactivity = [lightgray]Promieniotwórczość: {0} - -unit.health = [lightgray]Zdrowie: {0} -unit.speed = [lightgray]Prędkość: {0} -unit.weapon = [lightgray]Broń: {0} -unit.itemcapacity = [lightgray]Pojemność przedmiotów: {0} -unit.minespeed = [lightgray]Prędkość kopania: {0}% -unit.minepower = [lightgray]Moc kopania: {0} -unit.ability = [lightgray]Umiejętność: {0} -unit.buildspeed = [lightgray]Prędkość budowania: {0}% - -liquid.heatcapacity = [lightgray]Wytrzymałość na przegrzewanie: {0} -liquid.viscosity = [lightgray]Lepkość: {0} -liquid.temperature = [lightgray]Temperatura: {0} - unit.dagger.name = Nóż unit.mace.name = Mace unit.fortress.name = Forteca @@ -936,6 +961,7 @@ block.cliff.name = Klif block.sand-boulder.name = Piaskowy Głaz block.grass.name = Trawa block.slag.name = Żużel +block.space.name = Space block.salt.name = Sól block.salt-wall.name = Salt Wall block.pebbles.name = Kamyki @@ -981,6 +1007,7 @@ block.darksand-water.name = Woda z Ciemnym Piaskiem block.char.name = Popiół block.dacite.name = Dacite block.dacite-wall.name = Dacite Wall +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = Lodowy Śnieg block.stone-wall.name = Stone Wall block.ice-wall.name = Ice Wall @@ -990,7 +1017,7 @@ block.pine.name = Sosna block.dirt.name = Dirt block.dirt-wall.name = Dirt Wall block.mud.name = Mud -block.white-tree-dead.name = Białe Drzewo Martwe +block.white-tree-dead.name = Białe Martwe Drzewo block.white-tree.name = Białe Drzewo block.spore-cluster.name = Skupisko Zarodników block.metal-floor.name = Metalowa Podłoga @@ -1075,6 +1102,7 @@ block.power-source.name = Źródło prądu block.unloader.name = Ekstraktor block.vault.name = Magazyn block.wave.name = Strumień +block.tsunami.name = Tsunami block.swarmer.name = Działo Rojowe block.salvo.name = Działo Salwowe block.ripple.name = Działo Falowe @@ -1114,6 +1142,7 @@ block.arc.name = Piorun block.rtg-generator.name = Generator RTG block.spectre.name = Huragan block.meltdown.name = Rozpad +block.foreshadow.name = Foreshadow block.container.name = Kontener block.launch-pad.name = Wyrzutnia block.launch-pad-large.name = Duża Wyrzutnia @@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor block.logic-display.name = Logic Display block.large-logic-display.name = Large Logic Display block.memory-cell.name = Memory Cell +block.memory-bank.name = Memory Bank team.blue.name = niebieski team.crux.name = czerwony @@ -1166,7 +1196,7 @@ tutorial.breaking = Bloki często wymagają rozbiórki.\n[accent]Przytrzymaj pra tutorial.breaking.mobile = Bloki często wymagają rozbiórki.\n[accent]Wybierz tryb dekonstrukcji[], a następnie dotknij blok by zacząć go niszczyć.\nZdekonstruuj obszarowo poprzez przytrzymanie palcem przez moment[] i przesunięcie go w jakimś kierunku.\nNaciśnij przycisk ptaszka by potwierdzić rozbiórkę.\n\n[accent]Zniszcz wszystkie bloki złomu na lewo od twojego rdzenia używając selekcji obszarowej. tutorial.withdraw = Czasami, konieczne jest wyjmowanie przedmiotów prosto z bloków.\nBy tego dokonać, [accent]kliknij blok[] z przedmiotami w nim, potem [accent]kliknij przedmiot[] w inwentarzu.\nMożesz zebrać wiele przedmiotów naraz poprzez [accent]kliknięcie i przytrzymanie[].\n\n[accent]Zabierz trochę miedzi z rdzenia.[] tutorial.deposit = Włóż przedmioty do bloków poprzez przeciągnięcie z twojego statku do danego bloku.\n\n[accent]Włóż miedź z powrotem do rdzenia .[] -tutorial.waves = [lightgray] Wrogowie[] nadchodzą.\n\nBroń swój rdżeń przez 2 fale.[accent] Kliknij[] by strzelać.\nZbuduj wiecej działek i wierteł. Wydobądź więcej miedzi. +tutorial.waves = [lightgray] Wrogowie[] nadchodzą.\n\nBroń swój rdzeń przez 2 fale.[accent] Kliknij[] by strzelać.\nZbuduj wiecej działek i wierteł. Wydobądź więcej miedzi. tutorial.waves.mobile = [lightgray] Wrogowie[] nadchodzą.\n\nBroń swój rdzeń przez 2 fale. Twój statek będzie automatycznie atakował wrogów.\nZbuduj wiecej działek i wierteł. Wydobądź więcej miedzi. tutorial.launch = Kiedy dotrzesz do określonej fali, masz możliwość[accent] wystrzelenia rdzenia[], pozostawiając struktury obronne za sobą i[accent] otrzymując wszystkie surowce znajdujące się w rdzeniu.[]\nSurowce te mogą potem zostać użyte do odkrywania nowych technologii.\n\n[accent]Naciśnij przycisk Wystrzału. @@ -1302,4 +1332,4 @@ block.cyclone.description = Duża szybkostrzelna wieża. block.spectre.description = Duże działo dwulufowe, które strzela potężnymi pociskami przebijającymi pancerz w jednostki naziemne i powietrzne. block.meltdown.description = Duże działo laserowe, które strzela potężnymi wiązkami dalekiego zasięgu. Wymaga chłodzenia. block.repair-point.description = Bez przerw naprawia najbliższą uszkodzoną jednostkę w jego zasięgu. -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. \ No newline at end of file +block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index 7f2659d839..a8388e50db 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -55,6 +55,7 @@ schematic.saved = Esquema salvo. schematic.delete.confirm = Esse esquema será apagado. Tem certeza? schematic.rename = Renomear esquema schematic.info = {0}x{1}, {2} blocos +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = Hordas derrotadas:[accent] {0} stat.enemiesDestroyed = Inimigos destruídos:[accent] {0} @@ -100,7 +101,6 @@ done = Feito feature.unsupported = Seu dispositivo não suporta essa função. mods.alphainfo = Tenha em mente que os mods estão em alpha, e[scarlet] talvez eles contenham erros e instabilidades[].\nReporte quaisquer problemas no Discord ou GitHub do Mindustry. -mods.alpha = [accent](Alpha) mods = Mods mods.none = [lightgray]Nenhum mod encontrado! mods.guide = Guia de mods @@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] para selecionar + copiar pausebuilding = [accent][[{0}][] para parar a construção resumebuilding = [scarlet][[{0}][] para continuar a construção wave = [accent]Horda {0} +wave.cap = [accent]Wave {0}/{1} wave.waiting = Proxima horda em {0} wave.waveInProgress = [lightgray]Horda em progresso waiting = Aguardando... waiting.players = Esperando por jogadores... wave.enemies = [lightgray]{0} inimigos restantes wave.enemy = [lightgray]{0} inimigo restante +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = Carregar\nimagem saveimage = Salvar\nimagem unknown = Desconhecido @@ -328,6 +331,7 @@ editor.generation = Geração: editor.ingame = Editar em jogo editor.publish.workshop = Publicar na oficina editor.newmap = Novo mapa +editor.center = Center workshop = Oficina waves.title = Hordas waves.remove = Remover @@ -416,6 +420,7 @@ filters.empty = [lightgray]Sem filtro! Adicione um usando o botão abaixo. filter.distort = Distorcedor filter.noise = Geração aleatória filter.enemyspawn = Enemy Spawn Select +filter.spawnpath = Path To Spawn filter.corespawn = Core Select filter.median = Medio filter.oremedian = Minério mediano @@ -440,6 +445,7 @@ filter.option.amount = Amount filter.option.block = Bloco filter.option.floor = Chão filter.option.flooronto = Chão alvo +filter.option.target = Target filter.option.wall = Parede filter.option.ore = Minério filter.option.floor2 = Chão secundário @@ -471,15 +477,9 @@ requirement.wave = Alcançar a Horda {0} em {1} requirement.core = Destruir o núcleo inimigo em {0} requirement.research = Research {0} requirement.capture = Capture {0} -resume = Resumir Zona:\n[lightgray]{0} bestwave = [lightgray]Melhor: {0} -launch = Lançar launch.text = Launch -launch.title = Lançamento feito com sucesso -launch.next = [lightgray]Próxima oportunidade na Horda {0} -launch.unable2 = [scarlet]Impossível lançar.[] -launch.confirm = Isto vai lançar todos os seus recursos no seu núcleo.\nVoce não será capaz de retornar para esta base. -launch.skip.confirm = Se você pular a horda agora, você não será capaz de lançar até hordas futuras. +research.multiplayer = Only the host can research items. uncover = Descobrir configure = Configurar carregamento loadout = Loadout @@ -512,6 +512,7 @@ weather.rain.name = Rain weather.snow.name = Snow weather.sandstorm.name = Sandstorm weather.sporestorm.name = Sporestorm +weather.fog.name = Fog sectors.unexplored = [lightgray]Unexplored sectors.resources = Resources: @@ -521,6 +522,11 @@ sectors.resume = Resume sectors.launch = Launch sectors.select = Select sectors.nonelaunch = [lightgray]none (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = Ground Zero sector.craters.name = The Craters @@ -560,6 +566,10 @@ settings.clear.confirm = Certeza que quer limpar a os dados?\nOque é feito não settings.clearall.confirm = [scarlet]Aviso![]\nIsso vai limpar todo os arquivos, incluindo jogos salvos, mapas, teclas personalizadas e desbloqueados.\nQuando apertar 'ok' todos os arquivos serão apagados e o jogo irá sair automaticamente. settings.clearsaves.confirm = Are you sure you want to clear all your saves? settings.clearsaves = Clear Saves +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = Pausado clear = Limpo banned = [scarlet]BANIDO @@ -570,12 +580,14 @@ info.title = [accent]Informação error.title = [crimson]Ocorreu um Erro. error.crashtitle = Ocorreu um Erro unit.nobuild = [scarlet]Unit can't build +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]??? + stat.input = Entrada stat.output = Saída stat.booster = Apoio stat.tiles = Required Tiles stat.affinities = Affinities -block.unknown = [lightgray]??? stat.powercapacity = Capacidade de Energia stat.powershot = Energia/tiro stat.damage = Dano @@ -594,6 +606,7 @@ stat.powerconnections = Conexões Máximas stat.poweruse = Uso de energia stat.powerdamage = Dano/Poder stat.itemcapacity = Capacidade de Itens +stat.memorycapacity = Memory Capacity stat.basepowergeneration = Geração de poder base stat.productiontime = Tempo de produção stat.repairtime = Tempo de reparo total do bloco @@ -609,10 +622,32 @@ stat.maxconsecutive = Max Consecutive stat.buildcost = Custo de construção stat.inaccuracy = Imprecisão stat.shots = Tiros -stat.reload = Tiros por segundo +stat.reload = Tempo de recarga stat.ammo = Munição stat.shieldhealth = Shield Health -stat.cooldowntime = Cooldown Time +stat.cooldowntime = Tempo de espera +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Broca melhor necessária. bar.noresources = Missing Resources @@ -624,6 +659,7 @@ bar.powerbalance = Energia: {0} bar.powerstored = Armazenada: {0}/{1} bar.poweramount = Energia: {0} bar.poweroutput = Saída de energia: {0} +bar.powerlines = Connections: {0}/{1} bar.items = Itens: {0} bar.capacity = Capacidade: {0} bar.unitcap = {0} {1}/{2} @@ -635,6 +671,8 @@ bar.progress = Progresso da construção bar.input = Entrada bar.output = Sainda +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray] de dano bullet.splashdamage = [stat]{0}[lightgray] de dano em área ~[stat] {1}[lightgray] bloco(s) bullet.incendiary = [stat]Incendiário @@ -642,12 +680,15 @@ bullet.homing = [stat]Guiado bullet.shock = [stat]Choque bullet.frag = [stat]Fragmentação bullet.knockback = [stat]{0}[lightgray]Impulso +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat]Congelamento bullet.tarred = [stat]Grudento bullet.multiplier = [stat]{0}[lightgray]x multiplicador de munição bullet.reload = [stat]{0}[lightgray]x cadência de tiro unit.blocks = Blocos +unit.blockssquared = blocks² unit.powersecond = unidades de energia por segundo unit.liquidsecond = líquido segundo unit.itemssecond = itens por segundo @@ -670,7 +711,7 @@ category.power = Energia category.liquids = Líquidos category.items = Itens category.crafting = Entrada/Saída -category.shooting = Atiradores +category.function = Function category.optional = Melhoras opcionais setting.landscape.name = Travar panorama setting.shadows.name = Sombras @@ -679,7 +720,6 @@ setting.linear.name = Filtragem linear setting.hints.name = Dicas setting.flow.name = Display Resource Flow Rate[scarlet] (experimental) setting.buildautopause.name = Pausar construções automaticamente -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = Água animada setting.animatedshields.name = Escudos animados setting.antialias.name = Filtro suavizante[lightgray] (reinicialização requerida)[] @@ -702,7 +742,7 @@ setting.difficulty.name = Dificuldade setting.screenshake.name = Balanço da Tela setting.effects.name = Efeitos setting.destroyedblocks.name = Mostrar Blocos Destruídos -setting.blockstatus.name = Display Block Status +setting.blockstatus.name = Mostrar a Propriedade dos Blocos setting.conveyorpathfinding.name = Esteiras Encontram Caminho setting.sensitivity.name = Sensibilidade do Controle setting.saveinterval.name = Intervalo de Auto Salvamento @@ -712,15 +752,14 @@ setting.milliseconds = {0} milissegundos setting.fullscreen.name = Tela Cheia setting.borderlesswindow.name = Janela sem borda[lightgray] (Pode precisar reiniciar) setting.fps.name = Mostrar FPS e Ping -setting.smoothcamera.name = Smooth Camera -setting.blockselectkeys.name = Mostrar teclas de seleção de blocos +setting.smoothcamera.name = Suavizar movimentos da câmera setting.vsync.name = VSync setting.pixelate.name = Pixelizado [lightgray](Pode diminuir a performace) setting.minimap.name = Mostrar minimapa setting.coreitems.name = Display Core Items (WIP) setting.position.name = Mostrar a posição do Jogador setting.musicvol.name = Volume da Música -setting.atmosphere.name = Show Planet Atmosphere +setting.atmosphere.name = Mostrar a atmosfera do planeta setting.ambientvol.name = Volume do Ambiente setting.mutemusic.name = Desligar Música setting.sfxvol.name = Volume de Efeitos @@ -743,25 +782,25 @@ keybinds.mobile = [scarlet]A maior parte das teclas aqui não são funcionais em category.general.name = Geral category.view.name = Ver category.multiplayer.name = Multijogador -category.blocks.name = Block Select +category.blocks.name = Selecionar bloco command.attack = Atacar command.rally = Reunir command.retreat = Recuar -command.idle = Idle +command.idle = Ausente placement.blockselectkeys = \n[lightgray]Tecla: [{0}, -keybind.respawn.name = Respawn -keybind.control.name = Control Unit +keybind.respawn.name = Reaparecer +keybind.control.name = Controlar unidade keybind.clear_building.name = Limpar construção keybind.press = Pressione uma tecla... keybind.press.axis = Pressione um eixo ou tecla... keybind.screenshot.name = Captura do mapa keybind.toggle_power_lines.name = Mudar lasers -keybind.toggle_block_status.name = Toggle Block Statuses +keybind.toggle_block_status.name = Mostrar a propriedade dos blocos keybind.move_x.name = Mover no eixo x keybind.move_y.name = Mover no eixo Y -keybind.mouse_move.name = Seguir Mouse -keybind.pan.name = Pan View -keybind.boost.name = Boost +keybind.mouse_move.name = Seguir o Cursor +keybind.pan.name = Câmera livre +keybind.boost.name = Impulsionar keybind.schematic_select.name = Selecionar região keybind.schematic_menu.name = Menu de Esquemas keybind.schematic_flip_x.name = Girar o Esquema no eixo X @@ -784,15 +823,15 @@ keybind.block_select_09.name = Categoria/Selecionar bloco 9 keybind.block_select_10.name = Categoria/Selecionar bloco 10 keybind.fullscreen.name = Alterar tela cheia keybind.select.name = selecionar -keybind.diagonal_placement.name = Colocação diagonal +keybind.diagonal_placement.name = Posicionamento Diagonal keybind.pick.name = Pegar bloco keybind.break_block.name = Quebrar bloco keybind.deselect.name = Desselecionar -keybind.pickupCargo.name = Pickup Cargo -keybind.dropCargo.name = Drop Cargo -keybind.command.name = Command +keybind.pickupCargo.name = Pegar Carga +keybind.dropCargo.name = Soltar Carga +keybind.command.name = Comandar keybind.shoot.name = Atirar -keybind.zoom.name = Zoom +keybind.zoom.name = Ampliar keybind.menu.name = Menu keybind.pause.name = Pausar keybind.pause_building.name = Parar/Resumir a construção @@ -807,7 +846,7 @@ keybind.chat_history_prev.name = Historico do chat anterior keybind.chat_history_next.name = Historico do próximo chat keybind.chat_scroll.name = Rolar chat keybind.drop_unit.name = Soltar unidade -keybind.zoom_minimap.name = Zoom do minimapa +keybind.zoom_minimap.name = Ampliar minimapa mode.help.title = Descrição dos modos mode.survival.name = Sobrevivência mode.survival.description = O modo normal. Recursos limitados e hordas automáticas. @@ -822,10 +861,11 @@ mode.custom = Regras personalizadas rules.infiniteresources = Recursos infinitos rules.reactorexplosions = Reatores explodem +rules.schematic = Schematics Allowed rules.wavetimer = Tempo de horda rules.waves = Hordas rules.attack = Modo de ataque -rules.buildai = AI Building +rules.buildai = Habilitar construção da IA rules.enemyCheat = Recursos de IA Infinitos rules.blockhealthmultiplier = Multiplicador de vida do bloco rules.blockdamagemultiplier = Block Damage Multiplier @@ -836,28 +876,30 @@ rules.enemycorebuildradius = Raio de "Não-criação" de core inimigo:[lightgray rules.wavespacing = Espaço de tempo entre hordas:[lightgray] (seg) rules.buildcostmultiplier = Multiplicador de custo de construção rules.buildspeedmultiplier = Multiplicador de velocidade de construção -rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier +rules.deconstructrefundmultiplier = Multiplicador de reembolso de desconstrução rules.waitForWaveToEnd = Hordas esperam inimigos rules.dropzoneradius = Raio da zona de spawn:[lightgray] (blocos) -rules.unitammo = Units Require Ammo +rules.unitammo = Unidades requerem munição rules.title.waves = Hordas rules.title.resourcesbuilding = Recursos e Construções rules.title.enemy = Inimigos rules.title.unit = Unidades rules.title.experimental = Experimental -rules.title.environment = Environment +rules.title.environment = Ambiente rules.lighting = Iluminação -rules.fire = Fire -rules.explosions = Block/Unit Explosion Damage +rules.enemyLights = Enemy Lights +rules.fire = Fogo +rules.explosions = Dano de explosão de unidades/blocos rules.ambientlight = Luz ambiente -rules.weather = Weather -rules.weather.frequency = Frequency: -rules.weather.duration = Duration: +rules.weather = Clima +rules.weather.frequency = Frequência: +rules.weather.duration = Duração: content.item.name = Itens content.liquid.name = Líquidos content.unit.name = Unidades content.block.name = Blocos + item.copper.name = Cobre item.lead.name = Chumbo item.coal.name = Carvão @@ -879,23 +921,6 @@ liquid.slag.name = Escória liquid.oil.name = Petróleo liquid.cryofluid.name = Fluído Criogênico -item.explosiveness = [lightgray]Explosibilidade: {0} -item.flammability = [lightgray]Inflamabilidade: {0} -item.radioactivity = [lightgray]Radioatividade: {0} - -unit.health = [lightgray]Vida: {0} -unit.speed = [lightgray]Velocidade: {0} -unit.weapon = [lightgray]Weapon: {0} -unit.itemcapacity = [lightgray]Item Capacity: {0} -unit.minespeed = [lightgray]Mining Speed: {0}% -unit.minepower = [lightgray]Mining Power: {0} -unit.ability = [lightgray]Ability: {0} -unit.buildspeed = [lightgray]Building Speed: {0}% - -liquid.heatcapacity = [lightgray]Capacidade de aquecimento: {0} -liquid.viscosity = [lightgray]Viscosidade: {0} -liquid.temperature = [lightgray]Temperatura: {0} - unit.dagger.name = Adaga unit.mace.name = Mace unit.fortress.name = Fortaleza @@ -930,28 +955,29 @@ unit.reign.name = Reign unit.vela.name = Vela unit.corvus.name = Corvus -block.resupply-point.name = Resupply Point -block.parallax.name = Parallax -block.cliff.name = Cliff +block.resupply-point.name = Ponto de Reabastecimento +block.parallax.name = Paralaxe +block.cliff.name = Relevo block.sand-boulder.name = Pedregulho de areia block.grass.name = Grama -block.slag.name = Slag +block.slag.name = Escória +block.space.name = Space block.salt.name = Sal -block.salt-wall.name = Salt Wall +block.salt-wall.name = Parede de Sal block.pebbles.name = Pedrinhas block.tendrils.name = Gavinhas block.sand-wall.name = Sand Wall block.spore-pine.name = Pinheiro de esporo block.spore-wall.name = Spore Wall -block.boulder.name = Boulder -block.snow-boulder.name = Snow Boulder +block.boulder.name = Rochedo +block.snow-boulder.name = Monte de neve block.snow-pine.name = Pinheiro com neve -block.shale.name = Xisto -block.shale-boulder.name = Pedra de Xisto +block.shale.name = Folhelho +block.shale-boulder.name = Pedra de Folhelho block.moss.name = Musgo block.shrubs.name = Arbusto block.spore-moss.name = Musgo de Esporos -block.shale-wall.name = Shale Wall +block.shale-wall.name = Parede de Folhelho block.scrap-wall.name = Muro de sucata block.scrap-wall-large.name = Muro grande de sucata block.scrap-wall-huge.name = Muro enorme de sucata @@ -961,7 +987,7 @@ block.kiln.name = Forno block.graphite-press.name = Prensa de grafite block.multi-press.name = Multi-Prensa block.constructing = {0}\n[lightgray](Construindo) -block.spawn.name = Area inimiga +block.spawn.name = Área inimiga block.core-shard.name = Fragmento do núcleo block.core-foundation.name = Fundação do núcleo block.core-nucleus.name = Centro do núcleo @@ -978,18 +1004,19 @@ block.snow.name = Neve block.craters.name = Crateras block.sand-water.name = Água sobre areia block.darksand-water.name = Água sobre areia escura -block.char.name = Char -block.dacite.name = Dacite -block.dacite-wall.name = Dacite Wall -block.ice-snow.name = Gelo de neve -block.stone-wall.name = Stone Wall -block.ice-wall.name = Ice Wall -block.snow-wall.name = Snow Wall -block.dune-wall.name = Dune Wall +block.char.name = Cinzas +block.dacite.name = Dacito +block.dacite-wall.name = Parede de Dacito +block.dacite-boulder.name = Dacite Boulder +block.ice-snow.name = Gelo com Neve +block.stone-wall.name = Parede de Pedra +block.ice-wall.name = Parede de Gelo +block.snow-wall.name = Parede de Neve +block.dune-wall.name = Duna block.pine.name = Pinheiro -block.dirt.name = Dirt -block.dirt-wall.name = Dirt Wall -block.mud.name = Mud +block.dirt.name = Terra +block.dirt-wall.name = Parede de Terra +block.mud.name = Lama block.white-tree-dead.name = Árvore branca morta block.white-tree.name = Árvore branca block.spore-cluster.name = Aglomerado de esporos @@ -1005,7 +1032,7 @@ block.dark-panel-4.name = Painel escuro 4 block.dark-panel-5.name = Painel escuro 5 block.dark-panel-6.name = Painel escuro 6 block.dark-metal.name = Metal escuro -block.basalt.name = Basalt +block.basalt.name = Basalto block.hotrock.name = Rocha quente block.magmarock.name = Rocha de magma block.copper-wall.name = Muro de Cobre @@ -1019,7 +1046,7 @@ block.phase-wall-large.name = Muralha de Fase block.thorium-wall.name = Muro de Tório block.thorium-wall-large.name = Muralha de Tório block.door.name = Porta -block.door-large.name = Portão +block.door-large.name = Porta grande block.duo.name = Torreta dupla block.scorch.name = Lança-chamas block.scatter.name = Dispersão @@ -1027,7 +1054,7 @@ block.hail.name = Artilharia block.lancer.name = Lanceiro block.conveyor.name = Esteira block.titanium-conveyor.name = Esteira de titânio -block.plastanium-conveyor.name = Plastanium Conveyor +block.plastanium-conveyor.name = Esteira de plastânio block.armored-conveyor.name = Esteira blindada block.armored-conveyor.description = Move os itens com a mesma velocidade das esteiras de titânio, mas tem mais armadura. Não aceita itens dos lados de nada além de outras esteiras. block.junction.name = Junção @@ -1038,8 +1065,8 @@ block.inverted-sorter.name = Ordenador invertido block.message.name = Mensagem block.illuminator.name = Iluminador block.illuminator.description = Uma pequena, compacta e configurável fonte de luz. Precisa de energia para funcionar. -block.overflow-gate.name = Portão Sobrecarregado -block.underflow-gate.name = Portão Sobrecarregado invertida +block.overflow-gate.name = Portão de Fluxo +block.underflow-gate.name = Portão de Fluxo invertido block.silicon-smelter.name = Fundidora de silicio block.phase-weaver.name = Palheta de fase block.pulverizer.name = Pulverizador @@ -1075,6 +1102,7 @@ block.power-source.name = Fonte de energia block.unloader.name = Descarregador block.vault.name = Cofre block.wave.name = Onda +block.tsunami.name = Tsunami block.swarmer.name = Enxame block.salvo.name = Salvo block.ripple.name = Morteiro @@ -1114,31 +1142,33 @@ block.arc.name = Tesla block.rtg-generator.name = Gerador GTR block.spectre.name = Espectro block.meltdown.name = Fusão +block.foreshadow.name = Foreshadow block.container.name = Contâiner block.launch-pad.name = Plataforma de lançamento block.launch-pad-large.name = Plataforma de lançamento grande -block.segment.name = Segment -block.command-center.name = Command Center -block.ground-factory.name = Ground Factory -block.air-factory.name = Air Factory -block.naval-factory.name = Naval Factory -block.additive-reconstructor.name = Additive Reconstructor -block.multiplicative-reconstructor.name = Multiplicative Reconstructor -block.exponential-reconstructor.name = Exponential Reconstructor -block.tetrative-reconstructor.name = Tetrative Reconstructor -block.payload-conveyor.name = Mass Conveyor -block.payload-router.name = Payload Router -block.disassembler.name = Disassembler -block.silicon-crucible.name = Silicon Crucible -block.overdrive-dome.name = Overdrive Dome +block.segment.name = Segmento +block.command-center.name = Centro de Comando +block.ground-factory.name = Fábrica de unidades terrestres +block.air-factory.name = Fábrica de unidades aéreas +block.naval-factory.name = Fábrica de unidades navais +block.additive-reconstructor.name = Reconstrutor Aditivo +block.multiplicative-reconstructor.name = Reconstrutor Multiplicativo +block.exponential-reconstructor.name = Reconstrutor Exponencial +block.tetrative-reconstructor.name = Reconstrutor Tetrativo +block.payload-conveyor.name = Esteira de Carga +block.payload-router.name = Roteador de Carga +block.disassembler.name = Desmontador +block.silicon-crucible.name = Fornalha De Silício +block.overdrive-dome.name = Domo de Sobrecarga -block.switch.name = Switch -block.micro-processor.name = Micro Processor -block.logic-processor.name = Logic Processor -block.hyper-processor.name = Hyper Processor -block.logic-display.name = Logic Display -block.large-logic-display.name = Large Logic Display -block.memory-cell.name = Memory Cell +block.switch.name = Alavanca +block.micro-processor.name = Micro Processador +block.logic-processor.name = Processador Lógico +block.hyper-processor.name = Hiper Processador +block.logic-display.name = Monitor Lógico +block.large-logic-display.name = Monitor lógico grande +block.memory-cell.name = Célula de Memória +block.memory-bank.name = Memory Bank team.blue.name = Azul team.crux.name = Vermelho @@ -1223,7 +1253,7 @@ block.plastanium-wall-large.description = Um tipo especial de muro que absorve a block.thorium-wall.description = Um bloco defensivo forte.\nBoa proteção contra inimigos. block.thorium-wall-large.description = Um bloco defensivo forte.\nBoa proteção contra inimigos.\nOcupa múltiplos blocos. block.phase-wall.description = Um muro revestido com um composto especial baseado em tecido de fase. Desvia a maioria das balas no impacto. -block.phase-wall-large.description = Um muro revestido com um composto especial baseado em tecido de fase. Desvia a maioria das balas no impacto.\nSOcupa múltiplos blocos. +block.phase-wall-large.description = Um muro revestido com um composto especial baseado em tecido de fase. Desvia a maioria das balas no impacto.\nOcupa múltiplos blocos. block.surge-wall.description = Um bloco defensivo extremamente durável.\nSe carrega com eletricidade no contato com as balas, soltando-s aleatoriamente. block.surge-wall-large.description = Um bloco defensivo extremamente durável.\nSe carrega com eletricidade no contato com as balas, soltando-s aleatoriamente.\nOcupa multiplos blocos. block.door.description = Uma pequeda porta. Pode ser aberta e fechada ao tocar. @@ -1239,8 +1269,8 @@ block.plastanium-conveyor.description = Moves items in batches.\nAccepts items a block.junction.description = Funciona como uma ponte Para duas esteiras que estejam se cruzando. Util em situações que tenha duas esteiras diferentes carregando materiais diferentes para lugares diferentes. block.bridge-conveyor.description = Bloco de transporte de itens avancado. Possibilita o transporte de itens acima de 3 blocos de construção ou paredes. block.phase-conveyor.description = Bloco de transporte de item avançado. Usa energia para teleportar itens a uma esteira de fase sobre uma severa distancia. -block.sorter.description = [interact]Aperte no bloco para configurar[] -block.inverted-sorter.description = Processa os itens como um sorteador normal, mas os itens escolhidos sairão pelas laterais ao invés. +block.sorter.description = Filtra itens passando o selecionado para frente e os outros para os lados. +block.inverted-sorter.description = Filtra os itens como um ordenador normal, porém, os itens escolhidos sairão pelas laterais. block.router.description = Aceita itens de uma direção e os divide em 3 direções igualmente. Util para espalhar materiais da fonte para multiplos alvos. block.distributor.description = Um roteador avançado que espalhas os itens em 7 outras direções igualmente. block.overflow-gate.description = Uma combinação de roteador e divisor Que apenas manda para a esquerda e Direita se a frente estiver bloqueada. @@ -1300,6 +1330,6 @@ block.fuse.description = Uma torre grande com curto alcance. Dispara três feixe block.ripple.description = Uma torre de artilharia extremamente poderosa. Dispara varios tiros aglomerados a uma grande distância nos seus inimigos. block.cyclone.description = Uma grande torre que dispara balas explosivas que se fragmentam em unidades aéreas e terrestres próximas. block.spectre.description = Um grande canhão massivo. Dispara grandes tiros perfuradores de blindagem em inimigos aéreos e terrestres. -block.meltdown.description = Um grande canhão laser massivo. Carrega e dispara um poderoso e persistente feixe nos seus inimigos. Requer uma refrigeração para ser operada. +block.meltdown.description = Um grande canhão laser massivo. Carrega e dispara um poderoso e persistente feixe nos seus inimigos. Requer um resfriamento para ser operada. block.repair-point.description = Continuamente repara a unidade danificada mais proxima. -block.segment.description = Destrói projéteis inimigos. Projéteis de laser não são afetados. \ No newline at end of file +block.segment.description = Destrói projéteis inimigos que se aproximam. Feixes não serão detectados. diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index c4b5070b3a..6e08cc7d3f 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -55,6 +55,7 @@ schematic.saved = Esquema gravado. schematic.delete.confirm = Este esquema irá ser completamente apagado. schematic.rename = Renomear Esquema schematic.info = {0}x{1}, {2} blocos +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = Hordas derrotadas:[accent] {0} stat.enemiesDestroyed = Inimigos Destruídos:[accent] {0} @@ -100,7 +101,6 @@ done = Feito feature.unsupported = O teu dispositivos não suporta esta característica. mods.alphainfo = Lembre-se de que os mods estão em alfa, e [scarlet] pode estar cheio de falhas[].\nReporta qualquer problema que encontres no the Mindustry GitHub ou Discord. -mods.alpha = [accent](Alpha) mods = Mods mods.none = [lightgray]Mods não encontrados! mods.guide = Guia de mods @@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] para selecionar+copy pausebuilding = [accent][[{0}][] para pausar construção resumebuilding = [scarlet][[{0}][] para resumir construção wave = [accent]Horda {0} +wave.cap = [accent]Wave {0}/{1} wave.waiting = Horda em {0} wave.waveInProgress = [lightgray]Horda Em Progresso waiting = Aguardando... waiting.players = Esperando por jogadores... wave.enemies = [lightgray]{0} inimigos restantes wave.enemy = [lightgray]{0} inimigo restante +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = Carregar\nimagem saveimage = Gravarr\nimagem unknown = Desconhecido @@ -328,6 +331,7 @@ editor.generation = Geração: editor.ingame = Editar em jogo editor.publish.workshop = Publicar na oficina editor.newmap = Novo mapa +editor.center = Center workshop = Oficina waves.title = Hordas waves.remove = Remover @@ -416,6 +420,7 @@ filters.empty = [lightgray]Sem filtro! Adicione um usando o botão abaixo. filter.distort = Distorcedor filter.noise = Geração aleatória filter.enemyspawn = Enemy Spawn Select +filter.spawnpath = Path To Spawn filter.corespawn = Core Select filter.median = Mediano filter.oremedian = Minério Mediano @@ -440,6 +445,7 @@ filter.option.amount = Amount filter.option.block = Bloco filter.option.floor = Chão filter.option.flooronto = Chão alvo +filter.option.target = Target filter.option.wall = Parede filter.option.ore = Minério filter.option.floor2 = Chão secundário @@ -471,15 +477,9 @@ requirement.wave = Ronda alcançada {0} / {1} requirement.core = Destruir Núcleo Inimigo em {0} requirement.research = Research {0} requirement.capture = Capture {0} -resume = Resumir Zona:\n[lightgray]{0} bestwave = [lightgray]Melhor: {0} -launch = Lançar launch.text = Launch -launch.title = Lançamento feito com sucesso -launch.next = [lightgray]Próxima oportunidade na Horda {0} -launch.unable2 = [scarlet]Impossível lançar.[] -launch.confirm = Isto vai lançar todos os seus recursos no seu núcleo.\nVoce não será capaz de retornar para esta base. -launch.skip.confirm = Se você pular a horda agora, você não será capaz de lançar até hordas mais avançadas. +research.multiplayer = Only the host can research items. uncover = Descobrir configure = Configurar carregamento loadout = Loadout @@ -512,6 +512,7 @@ weather.rain.name = Rain weather.snow.name = Snow weather.sandstorm.name = Sandstorm weather.sporestorm.name = Sporestorm +weather.fog.name = Fog sectors.unexplored = [lightgray]Unexplored sectors.resources = Resources: @@ -521,6 +522,11 @@ sectors.resume = Resume sectors.launch = Launch sectors.select = Select sectors.nonelaunch = [lightgray]none (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = Ground Zero sector.craters.name = The Craters @@ -560,6 +566,10 @@ settings.clear.confirm = Certeza que quer limpar a os dados?\nOque é feito não settings.clearall.confirm = [scarlet]Aviso![]\nIsso vai limpar toda a data, Incluindo saves, mapas, Keybinds e desbloqueados.\nQuando apertar 'ok' Vai apagar toda a data e sair automaticamente. settings.clearsaves.confirm = Are you sure you want to clear all your saves? settings.clearsaves = Clear Saves +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = Pausado clear = Limpar banned = [scarlet]Banido @@ -570,12 +580,14 @@ info.title = [accent]Informação error.title = [crimson]Ocorreu um Erro. error.crashtitle = Ocorreu um Erro unit.nobuild = [scarlet]Unit can't build +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]??? + stat.input = Entrada stat.output = Saida stat.booster = Booster stat.tiles = Telhas Requeridas stat.affinities = Afinidades -block.unknown = [lightgray]??? stat.powercapacity = Capacidade de Energia stat.powershot = Energia/tiro stat.damage = Dano @@ -594,6 +606,7 @@ stat.powerconnections = Max Connections stat.poweruse = Uso de energia stat.powerdamage = Dano/Poder stat.itemcapacity = Capacidade de Itens +stat.memorycapacity = Memory Capacity stat.basepowergeneration = Geração de poder base stat.productiontime = Tempo de produção stat.repairtime = Tempo de reparo total do bloco @@ -613,6 +626,28 @@ stat.reload = Tiros por segundo stat.ammo = Munição stat.shieldhealth = Shield Health stat.cooldowntime = Cooldown Time +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Broca melhor necessária. bar.noresources = Missing Resources @@ -624,6 +659,7 @@ bar.powerbalance = Energia: {0} bar.powerstored = Armazenada: {0}/{1} bar.poweramount = Energia: {0} bar.poweroutput = Saída de energia: {0} +bar.powerlines = Connections: {0}/{1} bar.items = Itens: {0} bar.capacity = Capacidade: {0} bar.unitcap = {0} {1}/{2} @@ -635,6 +671,8 @@ bar.progress = Progresso da construção bar.input = Input bar.output = Output +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray] dano bullet.splashdamage = [stat]{0}[lightgray] Dano em área ~[stat] {1}[lightgray] Blocos bullet.incendiary = [stat]Incendiário @@ -642,12 +680,15 @@ bullet.homing = [stat]Guiado bullet.shock = [stat]Choque bullet.frag = [stat]Fragmentação bullet.knockback = [stat]{0}[lightgray]Impulso +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat]Congelamento bullet.tarred = [stat]Grudento bullet.multiplier = [stat]{0}[lightgray]x multiplicador de munição bullet.reload = [stat]{0}[lightgray]x cadência de tiro unit.blocks = Blocos +unit.blockssquared = blocks² unit.powersecond = Unidades de energia/segundo unit.liquidsecond = Unidades de líquido/segundo unit.itemssecond = itens/segundo @@ -670,7 +711,7 @@ category.power = Poder category.liquids = Líquidos category.items = Itens category.crafting = Construindo -category.shooting = Atirando +category.function = Function category.optional = Melhoras opcionais setting.landscape.name = Travar panorama setting.shadows.name = Sombras @@ -679,7 +720,6 @@ setting.linear.name = Filtragem linear setting.hints.name = Hints setting.flow.name = Display Resource Flow Rate[scarlet] (experimental) setting.buildautopause.name = Auto-Pause Building -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = Água animada setting.animatedshields.name = Escudos animados setting.antialias.name = Filtro suavizante[lightgray] (reinicialização requerida)[] @@ -713,7 +753,6 @@ setting.fullscreen.name = Ecrã inteiro setting.borderlesswindow.name = Janela sem borda[lightgray] (Pode precisar reiniciar) setting.fps.name = Mostrar FPS setting.smoothcamera.name = Smooth Camera -setting.blockselectkeys.name = Show Block Select Keys setting.vsync.name = VSync setting.pixelate.name = Pixelizado [lightgray](Pode diminuir a performace) setting.minimap.name = Mostrar minimapa @@ -822,6 +861,7 @@ mode.custom = Regras personalizadas rules.infiniteresources = Recursos infinitos rules.reactorexplosions = Reactor Explosions +rules.schematic = Schematics Allowed rules.wavetimer = Tempo de horda rules.waves = Hordas rules.attack = Modo de ataque @@ -847,6 +887,7 @@ rules.title.unit = Unidades rules.title.experimental = Experimental rules.title.environment = Environment rules.lighting = Lighting +rules.enemyLights = Enemy Lights rules.fire = Fire rules.explosions = Block/Unit Explosion Damage rules.ambientlight = Ambient Light @@ -858,6 +899,7 @@ content.item.name = Itens content.liquid.name = Liquidos content.unit.name = Unidades content.block.name = Blocos + item.copper.name = Cobre item.lead.name = Chumbo item.coal.name = Carvão @@ -879,23 +921,6 @@ liquid.slag.name = Escória liquid.oil.name = Petróleo liquid.cryofluid.name = Crio Fluido -item.explosiveness = [lightgray]Explosibilidade: {0} -item.flammability = [lightgray]Inflamabilidade: {0} -item.radioactivity = [lightgray]Radioatividade: {0} - -unit.health = [lightgray]Vida: {0} -unit.speed = [lightgray]Velocidade: {0} -unit.weapon = [lightgray]Weapon: {0} -unit.itemcapacity = [lightgray]Item Capacity: {0} -unit.minespeed = [lightgray]Mining Speed: {0}% -unit.minepower = [lightgray]Mining Power: {0} -unit.ability = [lightgray]Ability: {0} -unit.buildspeed = [lightgray]Building Speed: {0}% - -liquid.heatcapacity = [lightgray]Capacidade de aquecimento: {0} -liquid.viscosity = [lightgray]Viscosidade: {0} -liquid.temperature = [lightgray]Temperatura: {0} - unit.dagger.name = Dagger unit.mace.name = Mace unit.fortress.name = Fortaleza @@ -936,6 +961,7 @@ block.cliff.name = Cliff block.sand-boulder.name = Pedregulho de areia block.grass.name = Grama block.slag.name = Slag +block.space.name = Space block.salt.name = Sal block.salt-wall.name = Salt Wall block.pebbles.name = Pedrinhas @@ -981,6 +1007,7 @@ block.darksand-water.name = Água sobre areia escura block.char.name = Char block.dacite.name = Dacite block.dacite-wall.name = Dacite Wall +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = Gelo de neve block.stone-wall.name = Stone Wall block.ice-wall.name = Ice Wall @@ -1075,6 +1102,7 @@ block.power-source.name = Criador de energia block.unloader.name = Descarregador block.vault.name = Cofre block.wave.name = Onda +block.tsunami.name = Tsunami block.swarmer.name = Enxame block.salvo.name = Salvo block.ripple.name = Ondulação @@ -1114,6 +1142,7 @@ block.arc.name = Arco Elétrico block.rtg-generator.name = Gerador GTR block.spectre.name = Espectro block.meltdown.name = Fusão +block.foreshadow.name = Foreshadow block.container.name = Contâiner block.launch-pad.name = Plataforma de lançamento block.launch-pad-large.name = Plataforma de lançamento grande @@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor block.logic-display.name = Logic Display block.large-logic-display.name = Large Logic Display block.memory-cell.name = Memory Cell +block.memory-bank.name = Memory Bank team.blue.name = Azul team.crux.name = Vermelho @@ -1302,4 +1332,4 @@ block.cyclone.description = Uma grande torre de tiro rapido. block.spectre.description = Uma grande torre que da dois tiros poderosos ao mesmo tempo. block.meltdown.description = Uma grande torre que atira dois raios poderosos ao mesmo tempo. block.repair-point.description = Continuamente repara a unidade danificada mais proxima. -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. \ No newline at end of file +block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index aa9fd2f18d..15a2cd7c73 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -20,7 +20,7 @@ gameover = Jocul s-a încheiat gameover.pvp = Echipa [accent] {0}[] este câștigătoare! highscore = [accent]Scor maxim nou! copied = Copiat. -indev.popup = [accent]v6[] este momentan în [accent]alpha[].\n[lightgray]Asta înseamnă că:[]\n[scarlet]- Campania este complet neterminată[]\n- Majoritatea [scarlet]AI-ului unităților[] nu funcționează bine\n- Multe unități sunt neterminate\n- Modul campanie nu este terminat \n- Tot ce vedeți se poate schimba sau poate fi eliminat.\n\nPentru a raporta buguri și crashuri intrați pe [accent]Github[]. +indev.popup = [accent]v6[] este momentan în [accent]beta[].\n[lightgray]Asta înseamnă că:[]\n[scarlet]- Campania este complet neterminată[]\n- Efectele sonore și muzica sunt neterminate/lipsesc\n- Majoritatea [scarlet]AI-ului unităților[] nu funcționează bine\n- Multe unități sunt neterminate\n- Modul campanie nu este terminat \n- Tot ce vedeți se poate schimba sau poate fi eliminat.\n\nPentru a raporta buguri și crashuri intrați pe [accent]Github[]. indev.notready = Această secțiune a jocului nu este gata încă. load.sound = Sunete @@ -100,8 +100,7 @@ committingchanges = Se Încarcă Schimbările done = Gata feature.unsupported = Dispozitivul tău nu suportă această funcție. -mods.alphainfo = Modurile sunt încă în alpha și[scarlet] pot avea multe buguri[].\nRaportați orice probleme apărute pe Githubul Mindustry sau pe Discord. -mods.alpha = [accent](Alpha) +mods.alphainfo = Modurile sunt încă în alpha și[scarlet] pot avea multe buguri[].\nRaportați orice probleme apărute pe Githubul Mindustry. mods = Moduri mods.none = [lightgray]Nu s-au găsit moduri! mods.guide = Ghid de Modding @@ -285,6 +284,7 @@ selectschematic = [accent][[{0}][] pt selectare+copiere pausebuilding = [accent][[{0}][] pt a face o pauză de la construit resumebuilding = [scarlet][[{0}][] pt a continua construitul wave = [accent]Valul {0} +wave.cap = [accent]Valul {0}/{1} wave.waiting = [lightgray]Val în {0} wave.waveInProgress = [lightgray]Val în desfășurare waiting = [lightgray]În așteptare... @@ -420,6 +420,7 @@ filters.empty = [lightgray]Fără filtre! Adaugă unul folosind butonul de mai j filter.distort = Distorsionare filter.noise = Zgomot Vizual filter.enemyspawn = Selectare Punct de Lansare Inamic +filter.spawnpath = Cale Către Punctul de Lansare filter.corespawn = Selectare Nucleu filter.median = Mediană filter.oremedian = Mediană Minereu @@ -443,7 +444,8 @@ filter.option.angle = Unghi filter.option.amount = Cantitate filter.option.block = Bloc filter.option.floor = Podea -filter.option.flooronto = Podea țintă +filter.option.flooronto = Podea Țintă +filter.option.target = Țintă filter.option.wall = Perete filter.option.ore = Minereu filter.option.floor2 = Podea Secundară @@ -477,9 +479,9 @@ requirement.research = Cercetează {0} requirement.capture = Capturează {0} bestwave = [lightgray]Cel Mai Bun Val: {0} launch.text = Lansează -campaign.multiplayer = Când joci muliplayer în campanie, nu poți cerceta noi tehnologii decât folosind materiale din sectoarele [accent]tale[], [scarlet]nu[] din sectorul gazdei jocului, unde te afli acum.\n\nPt a transfera materialele către sectoarele [accent]tale[] în multiplayer, folosește o [accent]platformă de lansare[]. +research.multiplayer = Doar gazda poate cerceta noi tehnologii. uncover = Descoperă -configure = Configurează Încărcarea +configure = Configurează Încărcarea loadout = Încărcare resources = Resurse bannedblocks = Blocuri Interzise @@ -510,6 +512,7 @@ weather.rain.name = Ploaie weather.snow.name = Ninsoare weather.sandstorm.name = Furtună de nisip weather.sporestorm.name = Furtună de spori +weather.fog.name = Ceață sectors.unexplored = [lightgray]Neexplorat sectors.resources = Resurse: @@ -519,6 +522,11 @@ sectors.resume = Revino sectors.launch = Lansare sectors.select = Selectează sectors.nonelaunch = [lightgray]nimic (soarele) +sectors.rename = Redenumește Sectorul +sector.missingresources = [scarlet]Resurse din Nucleu Insuficiente + +planet.serpulo.name = Serpulo +planet.sun.name = Soare sector.groundZero.name = Ground Zero sector.craters.name = The Craters @@ -533,7 +541,7 @@ sector.saltFlats.name = Salt Flats sector.fungalPass.name = Fungal Pass sector.groundZero.description = Locația optimă pt a începe încă odată. Risc de inamici scăzut. Puține resurse.\nAdună cât de mult plumb și cupru se poate.\nMergi mai departe. -sector.frozenForest.description = Chiar și aici, aproape de munți, sperii s-au împrăștiat. Temperaturile reci nu-i pot reține la infinit.\n\nÎncepe călătoria către electricitate. Construiește generatoare de combustie. Învață să folosești reparatoare. +sector.frozenForest.description = Chiar și aici, aproape de munți, sporii s-au împrăștiat. Temperaturile reci nu-i pot reține la infinit.\n\nÎncepe călătoria către electricitate. Construiește generatoare de combustie. Învață să folosești reparatoare. sector.saltFlats.description = La periferia deșertului stau Salt Flats. Puține resurse pot fi găsite în această locație.\n\nInamicul a ridicat un complex-depozit aici. Distruge-le nucleul. Nu lăsa nimic în urmă. sector.craters.description = Apa s-a acumulat în acest crater, rămășiță a vechilor războaie. Cucerește din nou zona. Adună nisip. Toarnă-l în metasticlă. Pompează apă pt a răci armele și burghiele. sector.ruinousShores.description = După deșerturi vine țărmul. Odată, locația aceasta a avut un sistem de apărare de coastă. N-a rămas mult din el. Doar structurile de apărare cele mai de bază rămas în picioare, restul fiind redus la fier vechi.\nContinuă expansiunea în afară. Redescoperă tehnologia. @@ -558,6 +566,10 @@ settings.clear.confirm = Sigur vrei să ștergi datele?\nCe e făcut nu poate fi settings.clearall.confirm = [scarlet]Atenție![]\nAsta va șterge toate datele, inclusiv salvări, hărți, deblocări și atribuiri de controale.\nOdată ce apeși 'ok' jocul va șterge toate datele și se va închide automat. settings.clearsaves.confirm = Sigur vrei să ștergi toate salvările? settings.clearsaves = Șterge Salvările +settings.clearresearch = Șterge Tehnologiile Cercetate +settings.clearresearch.confirm = Sigur vrei să ștergi toate tehnologiile cercetate în campanie? +settings.clearcampaignsaves = Șterge Salvările din Campanie +settings.clearcampaignsaves.confirm = Sigur vrei să ștergi toate salvările din campanie? paused = [accent]< Pauză > clear = Curăță banned = [scarlet]Interzis @@ -569,25 +581,26 @@ error.title = [scarlet]A apărut o eroare. error.crashtitle = A apărut o eroare. unit.nobuild = [scarlet]Unitatea nu poate construi. lastaccessed = [lightgray]Ultima Accesare: {0} +block.unknown = [lightgray]??? + stat.input = Necesită stat.output = Produce stat.booster = Booster stat.tiles = Teren Necesar stat.affinities = Efecte Teren -block.unknown = [lightgray]??? stat.powercapacity = Capacitate electrică stat.powershot = Electricitate/Glonț stat.damage = Forță stat.targetsair = Lovește Aeronave stat.targetsground = Lovește Artilerie -stat.itemsmoved = Viteza de Mișcare a Materialelor +stat.itemsmoved = Viteză de Mișcare a Materialelor stat.launchtime = Timp între Lansări stat.shootrange = Rază stat.size = Mărime -stat.displaysize = Mărimea Monitorului Logic +stat.displaysize = Mărime Monitor Logic stat.liquidcapacity = Capacitate Lichid -stat.powerrange = Raza Electrică -stat.linkrange = Raza Legăturilor +stat.powerrange = Rază Electrică +stat.linkrange = Rază Legături stat.instructions = Instrucțiuni stat.powerconnections = Maxim Conexiuni stat.poweruse = Consum Electricitate @@ -596,9 +609,9 @@ stat.itemcapacity = Capacitate Materiale stat.memorycapacity = Capacitate Memorie stat.basepowergeneration = Generare Electricitate (Bază) stat.productiontime = Timp Producție -stat.repairtime = Durata Reparării Blocului +stat.repairtime = Durată Reparare Bloc stat.speedincrease = Creștere Viteză -stat.range = Rază +stat.range = Rază stat.drilltier = Minabile stat.drillspeed = Viteză Burghiu (Bază) stat.boosteffect = Efect de Boost @@ -611,8 +624,30 @@ stat.inaccuracy = Inacuratețe stat.shots = Lovituri stat.reload = Lovituri/Secundă stat.ammo = Muniție -stat.shieldhealth = Viața Scutului +stat.shieldhealth = Viață Scut stat.cooldowntime = Timp de Reîncărcare +stat.explosiveness = Explozivitate +stat.basedeflectchance = Șansă de Reflexie +stat.lightningchance = Șansă Fulger +stat.lightningdamage = Forță Fulger +stat.flammability = Inflamabilitate +stat.radioactivity = Radioactivitate +stat.heatcapacity = Capacitate de Căldură +stat.viscosity = Vâscozitate +stat.temperature = Temperatură +stat.speed = Viteză +stat.buildspeed = Viteză Construcție +stat.minespeed = Viteză Minare +stat.minetier = Putere Minare +stat.payloadcapacity = Capacitate Încărcătură +stat.commandlimit = Nr Unități Comandate +stat.abilities = Abilități + +ability.forcefield = Câmp de Forță +ability.repairfield = Câmp de Reparare +ability.statusfield = Câmp Suprasolicitare Unități +ability.unitspawn = {0} Fabrici +ability.shieldregenfield = Câmp de Regenerare a Scutului bar.drilltierreq = Burghiu Mai Bun Necesar bar.noresources = Resurse lipsă @@ -628,7 +663,7 @@ bar.powerlines = Conexiuni: {0}/{1} bar.items = Materiale: {0} bar.capacity = Capacitate: {0} bar.unitcap = {0} {1}/{2} -bar.limitreached = [scarlet] {0} / {1}[white] {2}\n[lightgray][[unit disabled] +bar.limitreached = [scarlet] {0} / {1}[white] {2}\n[lightgray][[unitate dezactivată] bar.liquid = Lichid bar.heat = Căldură bar.power = Electricitate @@ -645,12 +680,15 @@ bullet.homing = [stat]cu radar bullet.shock = [stat]șoc bullet.frag = [stat]fragil bullet.knockback = [stat]{0} [lightgray]împingere +bullet.pierce = [stat]{0}[lightgray]x penetrare +bullet.infinitepierce = penetrare [stat] bullet.freezing = [stat]înghețat bullet.tarred = [stat]lipicios bullet.multiplier = [stat]{0}[lightgray]x multiplicator muniție bullet.reload = [stat]{0}[lightgray]x lovituri unit.blocks = blocuri +unit.blockssquared = blocuri² unit.powersecond = electricitate/secundă unit.liquidsecond = unități lichid/secundă unit.itemssecond = materiale/secundă @@ -663,7 +701,7 @@ unit.persecond = /sec unit.perminute = /min unit.timesspeed = x viteză unit.percent = % -unit.shieldhealth = viața scutului +unit.shieldhealth = viață scut unit.items = materiale unit.thousands = mii unit.millions = mil @@ -673,7 +711,7 @@ category.power = Electricitate category.liquids = Lichide category.items = Materiale category.crafting = Necesită/Produce -category.shooting = Lovire +category.function = Funcționare category.optional = Îmbunătățiri opționale setting.landscape.name = Blochează Mod Peisaj setting.shadows.name = Umbre @@ -682,8 +720,7 @@ setting.linear.name = Filtrare Liniară setting.hints.name = Indicii setting.flow.name = Afișează Rata de Curgere a lichidelor setting.buildautopause.name = Autopauză de la Construit -setting.mapcenter.name = Auto Centrează Harta La Jucător -setting.animatedwater.name = Fluide Animate +setting.animatedwater.name = Suprafețe Animate setting.animatedshields.name = Scuturi Animate setting.antialias.name = Antialiasing[lightgray] (necesită repornire)[] setting.playerindicators.name = Indicatori Jucător @@ -716,7 +753,6 @@ setting.fullscreen.name = Ecran Complet setting.borderlesswindow.name = Fereastră Fără Margine[lightgray] (repornirea poate fi necesară) setting.fps.name = Vezi FPS & Ping setting.smoothcamera.name = Cameră Graduală -setting.blockselectkeys.name = Vezi Detalii Cheie cu Privire la Selectarea Blocurilor setting.vsync.name = VSync setting.pixelate.name = Pixelează setting.minimap.name = Vezi Miniharta @@ -726,7 +762,7 @@ setting.musicvol.name = Volumul Muzicii setting.atmosphere.name = Vezi Atmosfera Planetelor setting.ambientvol.name = Volum Ambiental setting.mutemusic.name = Muzica pe Mut -setting.sfxvol.name = Volum SFX +setting.sfxvol.name = Volum Efecte Sonore setting.mutesound.name = Sunetul pe Mut setting.crashreport.name = Trimite Rapoarte de Crash anonime setting.savecreate.name = Auto-Creează Salvări @@ -863,6 +899,7 @@ content.item.name = Materiale content.liquid.name = Lichide content.unit.name = Unități content.block.name = Blocuri + item.copper.name = Cupru item.lead.name = Plumb item.coal.name = Cărbune @@ -884,23 +921,6 @@ liquid.slag.name = Zgură liquid.oil.name = Petrol liquid.cryofluid.name = Criofluid -item.explosiveness = [lightgray]Explozivitate: {0}% -item.flammability = [lightgray]Inflamabilitate: {0}% -item.radioactivity = [lightgray]Radioactivitate: {0}% - -unit.health = [lightgray]Viață: {0} -unit.speed = [lightgray]Viteză: {0} -unit.weapon = [lightgray]Armă: {0} -unit.itemcapacity = [lightgray]Capacitatea de Material: {0} -unit.minespeed = [lightgray]Viteza de Minare: {0}% -unit.minepower = [lightgray]Puterea Minării: {0} -unit.ability = [lightgray]Abilitate: {0} -unit.buildspeed = [lightgray]Viteza de Construcție: {0}% - -liquid.heatcapacity = [lightgray]Capacitatea de Căldură: {0} -liquid.viscosity = [lightgray]Vâscozitatea: {0} -liquid.temperature = [lightgray]Temperatura: {0} - unit.dagger.name = Dagger unit.mace.name = Mace unit.fortress.name = Fortress @@ -987,6 +1007,7 @@ block.darksand-water.name = Apă cu Nisip Negru block.char.name = Turbă block.dacite.name = Dacit block.dacite-wall.name = Perete de Dacit +block.dacite-boulder.name = Bolovan de Dacit block.ice-snow.name = Gheață Înzăpezită block.stone-wall.name = Perete de Piatră block.ice-wall.name = Perete de Gheață @@ -1153,7 +1174,7 @@ team.blue.name = albastră team.crux.name = roșie team.sharded.name = portocalie team.orange.name = portocalie -team.derelict.name = abandonat +team.derelict.name = abandonată team.green.name = verde team.purple.name = mov @@ -1311,4 +1332,4 @@ block.cyclone.description = O mare armă anti-artilerie și anti-aer. Trage cu g block.spectre.description = O armă masivă cu două țevi. Trage cu gloanțe mari care găuresc armurile țintelor aeriene și artileriei. block.meltdown.description = O armă cu laser masivă. Trage cu un laser continuu la inamicii din apropiere. Necesită răcitor pt a opera. block.repair-point.description = Repară încontinuu cea mai deteriorată unitate din vecinătate. -block.segment.description = Deteriorează și distruge proiectilele din apropiere. Laserele nu sunt afectate. \ No newline at end of file +block.segment.description = Deteriorează și distruge proiectilele din apropiere. Laserele nu sunt afectate. diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 078a1cf6f4..5dea0711d9 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -100,8 +100,7 @@ committingchanges = Внесение изменений done = Готово feature.unsupported = Ваше устройство не поддерживает эту возможность. -mods.alphainfo = Имейте в виду, что модификации находятся в альфа-версии и [scarlet]могут содержать много ошибок[]. Докладывайте о любых проблемах, которые вы найдете в Mindustry Github или Discord. -mods.alpha = [accent](Альфа) +mods.alphainfo = Имейте в виду, что модификации находятся в альфа-версии и [scarlet]могут содержать много ошибок[]. Докладывайте о любых проблемах, которые вы найдете в Mindustry Github. mods = Модификации mods.none = [lightgray]Модификации не найдены! mods.guide = Руководство по модам @@ -285,6 +284,7 @@ selectschematic = [accent][[{0}][] выделить и скопировать pausebuilding = [accent][[{0}][] для приостановки строительства resumebuilding = [scarlet][[{0}][] для продолжения строительства wave = [accent]Волна {0} +wave.cap = [accent]Волна {0}/{1} wave.waiting = [lightgray]Волна через {0} wave.waveInProgress = [lightgray]Волна продолжается waiting = [lightgray]Ожидание… @@ -421,6 +421,7 @@ filters.empty = [lightgray]Нет фильтров! Добавьте один п filter.distort = Искажение filter.noise = Шум filter.enemyspawn = Случайный выбор \nточек высадки +filter.spawnpath = Путь до точки высадки filter.corespawn = Случайный выбор ядра filter.median = Медиана filter.oremedian = Рудная медиана @@ -445,6 +446,7 @@ filter.option.amount = Количество filter.option.block = Блок filter.option.floor = Поверхность filter.option.flooronto = Целевая поверхность +filter.option.target = Цель filter.option.wall = Стена filter.option.ore = Руда filter.option.floor2 = Вторая поверхность @@ -478,7 +480,7 @@ requirement.research = Исследуйте {0} requirement.capture = Захватите {0} bestwave = [lightgray]Лучшая волна: {0} launch.text = Высадка -campaign.multiplayer = В исследованиях, при игре в кампании по сети, вы можете использовать только [accent]свои[] предметы, а [scarlet]не[] предметы сектора, в котором находитесь.\n\nДля отправки предметов на [accent]свои[] сектора воспользуйтесь [accent]пусковой площадкой[]. +research.multiplayer = Только хост может исследовать предметы. uncover = Раскрыть configure = Конфигурация выгрузки #TODO @@ -512,6 +514,7 @@ weather.rain.name = Дождь weather.snow.name = Снегопад weather.sandstorm.name = Пыльная буря weather.sporestorm.name = Споровая буря +weather.fog.name = Туман sectors.unexplored = [lightgray]Не исследовано sectors.resources = Ресурсы: @@ -521,6 +524,12 @@ sectors.resume = Продолжить sectors.launch = Высадка sectors.select = Выбор sectors.nonelaunch = [lightgray]нет (солнце) +sectors.rename = Переименовать сектор +sector.missingresources = [scarlet]Недостаточно ресурсов для высадки + +planet.serpulo.name = Серпуло +#TODO better name +planet.sun.name = Солнце #NOTE TO TRANSLATORS: don't bother editing these, they'll be removed and/or rewritten anyway sector.groundZero.name = Отправная точка @@ -565,6 +574,10 @@ settings.clear.confirm = Вы действительно хотите очист settings.clearall.confirm = [scarlet]ОСТОРОЖНО![]\nЭто сотрёт все данные, включая сохранения, карты, прогресс кампании и настройки управления.\nПосле того как вы нажмёте [accent][ОК][], игра уничтожит все данные и автоматически закроется. settings.clearsaves.confirm = Вы уверены, что хотите удалить все сохранения? settings.clearsaves = Удалить все сохранения +settings.clearresearch = Сбросить исследования +settings.clearresearch.confirm = Вы уверены, что хотите сбросить все ваши исследования кампании? +settings.clearcampaignsaves = Очистить сохранения кампании +settings.clearcampaignsaves.confirm = Вы уверены, что хотите очистить все ваши сохранения кампании? paused = [accent]< Пауза > clear = Очистить banned = [scarlet]Запрещено @@ -576,12 +589,13 @@ error.title = [scarlet]Произошла ошибка error.crashtitle = Произошла ошибка unit.nobuild = [scarlet]Боевая единица не может строить lastaccessed = [lightgray]Последняя конфигурация от {0} +block.unknown = [lightgray]??? + stat.input = Вход stat.output = Выход stat.booster = Ускоритель stat.tiles = Необходимые плитки stat.affinities = Увеличение эффективности -block.unknown = [lightgray]??? stat.powercapacity = Вместимость энергии stat.powershot = Энергия/Выстрел stat.damage = Урон @@ -620,6 +634,29 @@ stat.reload = Выстрелы/секунду stat.ammo = Боеприпасы stat.shieldhealth = Прочность щита stat.cooldowntime = Время восстановления +stat.explosiveness = Взрывоопасность +stat.basedeflectchance = Базовый шанс отражения +stat.lightningchance = Шанс удара молнии +stat.lightningdamage = Урон молнии +stat.flammability = Воспламеняемость +stat.radioactivity = Радиоактивность +stat.heatcapacity = Теплоёмкость +stat.viscosity = Вязкость +stat.temperature = Температура +stat.speed = Скорость +stat.buildspeed = Скорость строительства +stat.minespeed = Скорость добычи +stat.minetier = Уровень добычи +stat.payloadcapacity = Грузоподъёмность +stat.commandlimit = Лимит командования +stat.abilities = Способности + +ability.forcefield = Силовое поле +ability.repairfield = Ремонтирующее поле +#TODO туду тудум +ability.statusfield = Status Field +ability.unitspawn = Завод единиц «{0}» +ability.shieldregenfield = Поле восстановления щита bar.drilltierreq = Требуется бур получше bar.noresources = Недостаточно ресурсов @@ -660,6 +697,7 @@ bullet.multiplier = [stat]{0}[lightgray]x множитель боеприпас bullet.reload = [stat]{0}[lightgray]x скорость стрельбы unit.blocks = блоков +unit.blockssquared = блоков² unit.powersecond = единиц энергии/секунду unit.liquidsecond = жидкостных единиц/секунду unit.itemssecond = предметов/секунду @@ -682,7 +720,7 @@ category.power = Энергия category.liquids = Жидкости category.items = Предметы category.crafting = Ввод/Вывод -category.shooting = Стрельба/Действие +category.function = Действие category.optional = Дополнительные улучшения setting.landscape.name = Только альбомный (горизонтальный) режим setting.shadows.name = Тени @@ -691,8 +729,7 @@ setting.linear.name = Линейная фильтрация setting.hints.name = Подсказки setting.flow.name = Показывать скорость потока ресурсов setting.buildautopause.name = Автоматическая приостановка строительства -setting.mapcenter.name = Центрирование карты на игроке -setting.animatedwater.name = Анимированные жидкости +setting.animatedwater.name = Анимированные поверхности setting.animatedshields.name = Анимированные щиты setting.antialias.name = Сглаживание[lightgray] (требует перезапуска)[] setting.playerindicators.name = Индикаторы направления игроков @@ -725,7 +762,6 @@ setting.fullscreen.name = Полноэкранный режим setting.borderlesswindow.name = Безрамочное окно[lightgray] (может потребоваться перезапуск) setting.fps.name = Показывать FPS и пинг setting.smoothcamera.name = Плавная камера -setting.blockselectkeys.name = Показать клавиши выбора блока setting.vsync.name = Вертикальная синхронизация setting.pixelate.name = Пикселизация setting.minimap.name = Отображать мини-карту @@ -872,6 +908,7 @@ content.item.name = Предметы content.liquid.name = Жидкости content.unit.name = Боевые единицы content.block.name = Блоки + item.copper.name = Медь item.lead.name = Свинец item.coal.name = Уголь @@ -893,23 +930,6 @@ liquid.slag.name = Шлак liquid.oil.name = Нефть liquid.cryofluid.name = Криогенная жидкость -item.explosiveness = [lightgray]Взрывоопасность: {0}% -item.flammability = [lightgray]Воспламеняемость: {0}% -item.radioactivity = [lightgray]Радиоактивность: {0}% - -unit.health = [lightgray]Целостность: {0} -unit.speed = [lightgray]Скорость: {0} -unit.weapon = [lightgray]Оружие: {0} -unit.itemcapacity = [lightgray]Вместимость предметов: {0} -unit.minespeed = [lightgray]Скорость добычи: {0}% -unit.minepower = [lightgray]Мощность добычи: {0} -unit.ability = [lightgray]Способность: {0} -unit.buildspeed = [lightgray]Скорость строительства: {0}% - -liquid.heatcapacity = [lightgray]Теплоёмкость: {0} -liquid.viscosity = [lightgray]Вязкость: {0} -liquid.temperature = [lightgray]Температура: {0} - unit.dagger.name = Кинжал unit.mace.name = Булава unit.fortress.name = Крепость @@ -1321,4 +1341,4 @@ block.cyclone.description = Большая турель, которая може block.spectre.description = Массивная двуствольная пушка. Стреляет крупными бронебойными снарядами по воздушным и наземным целям. block.meltdown.description = Массивная лазерная пушка. Заряжает и стреляет постоянным лазерным лучом в ближайших врагов. Требуется охлаждающая жидкость для работы. block.repair-point.description = Непрерывно лечит ближайшую поврежденную боевую единицу или мех в своём радиусе. -block.segment.description = Повреждает и разрушает приближающиеся снаряды. Не взаимодействует с лазерными лучами. \ No newline at end of file +block.segment.description = Повреждает и разрушает приближающиеся снаряды. Не взаимодействует с лазерными лучами. diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index 8d3942eccb..bad6ad0220 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -55,6 +55,7 @@ schematic.saved = Schematic sparad. schematic.delete.confirm = Den här schematicen kommer bli ytterst borttagen. schematic.rename = Döp om Schematic schematic.info = {0}x{1}, {2} block +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = Besegrade vågor:[accent] {0} stat.enemiesDestroyed = Besegrade fiender:[accent] {0} @@ -100,7 +101,6 @@ done = Klar feature.unsupported = Your device does not support this feature. mods.alphainfo = Kom ihåg att mods är i alpha, och[scarlet] kan vara väldigt buggiga[].\nReport any issues you find to the Mindustry GitHub or Discord. -mods.alpha = [accent](Alpha) mods = Mods mods.none = [lightgray]No mods found! mods.guide = Modding Guide @@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] to select+copy pausebuilding = [accent][[{0}][] to pause building resumebuilding = [scarlet][[{0}][] to resume building wave = [accent]Våg {0} +wave.cap = [accent]Wave {0}/{1} wave.waiting = [lightgray]Våg om {0} wave.waveInProgress = [lightgray]Wave in progress waiting = [lightgray]Väntar... waiting.players = Väntar på spelare... wave.enemies = [lightgray]{0} Fiender kvarvarande wave.enemy = [lightgray]{0} Fiende kvar +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = Ladda bild saveimage = Spara bild unknown = Okänd @@ -328,6 +331,7 @@ editor.generation = Generering: editor.ingame = Edit In-Game editor.publish.workshop = Publish On Workshop editor.newmap = New Map +editor.center = Center workshop = Workshop waves.title = Vågor waves.remove = Ta bort @@ -416,6 +420,7 @@ filters.empty = [lightgray]No filters! Add one with the button below. filter.distort = Distort filter.noise = Brus filter.enemyspawn = Enemy Spawn Select +filter.spawnpath = Path To Spawn filter.corespawn = Core Select filter.median = Median filter.oremedian = Malmmedian @@ -440,6 +445,7 @@ filter.option.amount = Amount filter.option.block = Block filter.option.floor = Golv filter.option.flooronto = Target Floor +filter.option.target = Target filter.option.wall = Vägg filter.option.ore = Malm filter.option.floor2 = Secondary Floor @@ -471,15 +477,9 @@ requirement.wave = Reach Wave {0} in {1} requirement.core = Destroy Enemy Core in {0} requirement.research = Research {0} requirement.capture = Capture {0} -resume = Resume Zone:\n[lightgray]{0} bestwave = [lightgray]Best Wave: {0} -launch = < LAUNCH > launch.text = Launch -launch.title = Launch Successful -launch.next = [lightgray]next opportunity at wave {0} -launch.unable2 = [scarlet]Unable to LAUNCH.[] -launch.confirm = This will launch all resources in your core.\nYou will not be able to return to this base. -launch.skip.confirm = If you skip now, you will not be able to launch until later waves. +research.multiplayer = Only the host can research items. uncover = Uncover configure = Configure Loadout loadout = Loadout @@ -512,6 +512,7 @@ weather.rain.name = Rain weather.snow.name = Snow weather.sandstorm.name = Sandstorm weather.sporestorm.name = Sporestorm +weather.fog.name = Fog sectors.unexplored = [lightgray]Unexplored sectors.resources = Resources: @@ -521,6 +522,11 @@ sectors.resume = Resume sectors.launch = Launch sectors.select = Select sectors.nonelaunch = [lightgray]none (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = Ground Zero sector.craters.name = The Craters @@ -560,6 +566,10 @@ settings.clear.confirm = Are you sure you want to clear this data?\nWhat is done settings.clearall.confirm = [scarlet]WARNING![]\nThis will clear all data, including saves, maps, unlocks and keybinds.\nOnce you press 'ok' the game will wipe all data and automatically exit. settings.clearsaves.confirm = Are you sure you want to clear all your saves? settings.clearsaves = Clear Saves +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent]< Pausat > clear = Clear banned = [scarlet]Banned @@ -570,12 +580,14 @@ info.title = Info error.title = [crimson]An error has occured error.crashtitle = An error has occured unit.nobuild = [scarlet]Unit can't build +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]??? + stat.input = Inmatning stat.output = Utmatning stat.booster = Booster stat.tiles = Required Tiles stat.affinities = Affinities -block.unknown = [lightgray]??? stat.powercapacity = Power Capacity stat.powershot = Power/Shot stat.damage = Skada @@ -594,6 +606,7 @@ stat.powerconnections = Max Connections stat.poweruse = Power Use stat.powerdamage = Power/Damage stat.itemcapacity = Item Capacity +stat.memorycapacity = Memory Capacity stat.basepowergeneration = Base Power Generation stat.productiontime = Production Time stat.repairtime = Block Full Repair Time @@ -613,6 +626,28 @@ stat.reload = Shots/Second stat.ammo = Ammunition stat.shieldhealth = Shield Health stat.cooldowntime = Cooldown Time +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Bättre Borr Krävs bar.noresources = Missing Resources @@ -624,6 +659,7 @@ bar.powerbalance = Power: {0}/s bar.powerstored = Stored: {0}/{1} bar.poweramount = Power: {0} bar.poweroutput = Power Output: {0} +bar.powerlines = Connections: {0}/{1} bar.items = Föremål: {0} bar.capacity = Capacity: {0} bar.unitcap = {0} {1}/{2} @@ -635,6 +671,8 @@ bar.progress = Build Progress bar.input = Input bar.output = Output +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray] skada bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.incendiary = [stat]incendiary @@ -642,12 +680,15 @@ bullet.homing = [stat]homing bullet.shock = [stat]shock bullet.frag = [stat]frag bullet.knockback = [stat]{0}[lightgray] knockback +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat]freezing bullet.tarred = [stat]tarred bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier bullet.reload = [stat]{0}[lightgray]x fire rate unit.blocks = block +unit.blockssquared = blocks² unit.powersecond = power units/second unit.liquidsecond = liquid units/second unit.itemssecond = items/second @@ -670,7 +711,7 @@ category.power = Energi category.liquids = Vätskor category.items = Föremål category.crafting = Inmatning/Utmatning -category.shooting = Skjutning +category.function = Function category.optional = Optional Enhancements setting.landscape.name = Lock Landscape setting.shadows.name = Skuggor @@ -679,7 +720,6 @@ setting.linear.name = Linear Filtering setting.hints.name = Hints setting.flow.name = Display Resource Flow Rate[scarlet] (experimental) setting.buildautopause.name = Auto-Pause Building -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = Animerat Vatten setting.animatedshields.name = Animerade Sköldar setting.antialias.name = Antialias[lightgray] (requires restart)[] @@ -691,7 +731,7 @@ setting.touchscreen.name = Touchscreen Controls setting.fpscap.name = Begränsade FPS setting.fpscap.none = Inga setting.fpscap.text = {0} FPS -setting.uiscale.name = UI Scaling[lightgray] (require restart)[] +setting.uiscale.name = UI Scaling[lightgray] (requires restart)[] setting.swapdiagonal.name = Always Diagonal Placement setting.difficulty.training = Träning setting.difficulty.easy = Lätt @@ -713,7 +753,6 @@ setting.fullscreen.name = Fullskärm setting.borderlesswindow.name = Borderless Window[lightgray] (may require restart) setting.fps.name = Show FPS setting.smoothcamera.name = Smooth Camera -setting.blockselectkeys.name = Show Block Select Keys setting.vsync.name = VSync setting.pixelate.name = Pixellera[lightgray] (disables animations) setting.minimap.name = Visa Minikarta @@ -822,6 +861,7 @@ mode.custom = Custom Rules rules.infiniteresources = Infinite Resources rules.reactorexplosions = Reactor Explosions +rules.schematic = Schematics Allowed rules.wavetimer = Vågtimer rules.waves = Vågor rules.attack = Attack Mode @@ -847,6 +887,7 @@ rules.title.unit = Units rules.title.experimental = Experimental rules.title.environment = Environment rules.lighting = Lighting +rules.enemyLights = Enemy Lights rules.fire = Fire rules.explosions = Block/Unit Explosion Damage rules.ambientlight = Ambient Light @@ -858,6 +899,7 @@ content.item.name = Föremål content.liquid.name = Vätskor content.unit.name = Units content.block.name = Block + item.copper.name = Koppar item.lead.name = Bly item.coal.name = Kol @@ -879,23 +921,6 @@ liquid.slag.name = Slag liquid.oil.name = Olja liquid.cryofluid.name = Cryofluid -item.explosiveness = [lightgray]Explosiveness: {0}% -item.flammability = [lightgray]Flammability: {0}% -item.radioactivity = [lightgray]Radioactivity: {0}% - -unit.health = [lightgray]Health: {0} -unit.speed = [lightgray]Fart: {0} -unit.weapon = [lightgray]Weapon: {0} -unit.itemcapacity = [lightgray]Item Capacity: {0} -unit.minespeed = [lightgray]Mining Speed: {0}% -unit.minepower = [lightgray]Mining Power: {0} -unit.ability = [lightgray]Ability: {0} -unit.buildspeed = [lightgray]Building Speed: {0}% - -liquid.heatcapacity = [lightgray]Heat Capacity: {0} -liquid.viscosity = [lightgray]Viskositet: {0} -liquid.temperature = [lightgray]Temperatur: {0} - unit.dagger.name = Dagger unit.mace.name = Mace unit.fortress.name = Fortress @@ -936,6 +961,7 @@ block.cliff.name = Cliff block.sand-boulder.name = Sandbumling block.grass.name = Gräs block.slag.name = Slag +block.space.name = Space block.salt.name = Salt block.salt-wall.name = Salt Wall block.pebbles.name = Pebbles @@ -981,6 +1007,7 @@ block.darksand-water.name = Mörksandvatten block.char.name = Char block.dacite.name = Dacite block.dacite-wall.name = Dacite Wall +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = Issnö block.stone-wall.name = Stone Wall block.ice-wall.name = Ice Wall @@ -1075,6 +1102,7 @@ block.power-source.name = Energikälla block.unloader.name = Urladdare block.vault.name = Valv block.wave.name = Våg +block.tsunami.name = Tsunami block.swarmer.name = Svärmare block.salvo.name = Salvo block.ripple.name = Ripple @@ -1114,6 +1142,7 @@ block.arc.name = Båge block.rtg-generator.name = RTG Generator block.spectre.name = Spectre block.meltdown.name = Meltdown +block.foreshadow.name = Foreshadow block.container.name = Container block.launch-pad.name = Launch Pad block.launch-pad-large.name = Large Launch Pad @@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor block.logic-display.name = Logic Display block.large-logic-display.name = Large Logic Display block.memory-cell.name = Memory Cell +block.memory-bank.name = Memory Bank team.blue.name = blåa team.crux.name = röda @@ -1302,4 +1332,4 @@ block.cyclone.description = A large anti-air and anti-ground turret. Fires explo block.spectre.description = A massive dual-barreled cannon. Shoots large armor-piercing bullets at air and ground targets. block.meltdown.description = A massive laser cannon. Charges and fires a persistent laser beam at nearby enemies. Requires coolant to operate. block.repair-point.description = Continuously heals the closest damaged unit in its vicinity. -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. \ No newline at end of file +block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index b86d8e7182..930887461d 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -7,21 +7,21 @@ link.reddit.description = ซับเรดดิท (subreddit) ของ Mind link.github.description = source code ของเกม link.changelog.description = รายการที่อัปเดต link.dev-builds.description = เวอร์ชั่นระหว่างพัฒนา (ไม่เสถียร) -link.trello.description = Official Trello board for planned features -link.itch.io.description = itch.io page with PC downloads -link.google-play.description = Google Play store listing -link.f-droid.description = F-Droid catalogue listing -link.wiki.description = Official Mindustry wiki -link.suggestions.description = Suggest new features +link.trello.description = Trello board ทางการสำหรับฟีเจอร์ต่างๆที่วางแผนไว้ +link.itch.io.description = หน้าเว็บ itch.io สำหรับดาวน์โหลดบน PC +link.google-play.description = หน้า Google Play store ของเกม +link.f-droid.description = หน้าแคตาลอค F-Droid ของเกม +link.wiki.description = วิกิของ Mindustry อย่างเป็นทางการ +link.suggestions.description = เสนอฟีเจอร์ใหม่ linkfail = ไม่สามารถเปิดลิ้งค์ได้\nคัดลอก URL ลงในคลิปบอร์ดแล้ว screenshot = Screenshot บันทึกที่ {0} screenshot.invalid = แมพใหญ่เกินไป, หน่วยความจำอาจจะไม่พอสำหรับ screenshot. -gameover = Game Over +gameover = จบเกม gameover.pvp = ทีมที่ชนะคือทีม[accent] {0}[]! highscore = [accent]คะแนนสูงสุดใหม่! copied = คัดลอกแล้ว. -indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[]. -indev.notready = This part of the game isn't ready yet +indev.popup = [accent]เวอร์ชั่น v6[] ณ ขณะนี้อยู่ในช่วง [accent]alpha[].\n[lightgray]นั้นหมายถึง:[]\n[scarlet]- เคมเปญไม่ยังเสร็จสมบูรณ์ []\n- เนื้อหาบางอย่างขาดหาย\n - [scarlet]AI ของยูนิต[] ส่วนใหญ่ทำงานได้แบบไม่สมบูรณ์\n- ยูนิตส่วนมากยังไม่เสร็จ\n- ที่อย่างที่เห็นอาจเปลี่ยนแปลงได้หรือลบออกโดยสิ้นเชิงในอนาคต\n\nแจ้งบัคหรือปัญหาที่พบเจอได้ที่ [accent]Github[]. +indev.notready = ส่วนนี้ของเกมยังไม่พร้อมให้ใช้งาน load.sound = เสียง load.map = แมพ @@ -31,7 +31,7 @@ load.system = ระบบ load.mod = มอด load.scripts = สคริปต์ -be.update = A new Bleeding Edge build is available: +be.update = เวอร์ชั้นล่าสุดออกแล้ว: be.update.confirm = ดาวน์โหลดเวอร์ชั่นใหม่แล้วรีสตาร์ทเลยไหม? be.updating = กำลังอัปเดต... be.ignore = ยกเลิก @@ -42,7 +42,7 @@ schematic = แผนผัง schematic.add = กำลังบันทึกแผนผัง... schematics = แผนผัง schematic.replace = มีแผนผังที่ใช้ชื่อนี้แล้ว. แทนที่เลยไหม? -schematic.exists = A schematic by that name already exists. +schematic.exists = มีแผนผังในชื่อนั้นอยู่แล้ว schematic.import = นำเข้าแผนผัง... schematic.exportfile = ส่งออกไฟล์ schematic.importfile = นำเข้าไฟล์ @@ -55,6 +55,7 @@ schematic.saved = บันทึกแผนผังแล้ว. schematic.delete.confirm = แผนผังนี้จะถูกกำจัดให้หมดสิ้นโดยสิ้นเชิง schematic.rename = เปลี่ยนชื่อของแผนผัง schematic.info = {0}x{1}, {2} บล็อค +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = จำนวนคลื่น(รอบ)ที่กำจัดได้:[accent] {0} stat.enemiesDestroyed = จำนวนศัตรูที่ทำลายไปได้:[accent] {0} @@ -62,17 +63,17 @@ stat.built = จำนวนสิ่งก่อสร้างที่สร stat.destroyed = จำนวนสิ่งก่อสร้างของศัตรูที่ทำลายไปได้:[accent] {0} stat.deconstructed = จำนวนสิ่งก่อสร้างที่ถูกทำลายไป:[accent] {0} stat.delivered = ทรัพยากรที่ส่งไปได้: -stat.playtime = Time Played:[accent] {0} +stat.playtime = ระยะเวลาที่เล่นไป:[accent] {0} stat.rank = ระดับ: [accent]{0} -globalitems = [accent]Global Items +globalitems = [accent]ไอเท็มโกลบอล map.delete = คุณแน่ใจหรือว่าจะลบแมพชื่อ "[accent]{0}[]"? level.highscore = คะแนนสูงสุด: [accent]{0} level.select = เลือกด่าน level.mode = เกมโหมด: coreattack = < แกนกลางกำลังถูกโจมตี! > nearpoint = [[ [scarlet]ออกจากดรอปพอยท์ด่วน IMMEDIATELY[] ]\nการทำลายล้างกำลังใกล้เข้ามา -database = ฐานข้อมูหลัง +database = ฐานข้อมูลหลัก savegame = เซฟเกม loadgame = โหลดเกม joingame = เข้าร่วมเกม @@ -90,69 +91,68 @@ maps.browse = ค้นหาแมพ continue = ต่อ maps.none = [lightgray]ไม่มีแมพ! invalid = ไม่ถูกต้อง -pickcolor = Pick Color +pickcolor = เลือกสี preparingconfig = กำลังเตรียม Config -preparingcontent = กำลังเตรียม Content -uploadingcontent = กำลังอัปโหลด Content +preparingcontent = กำลังเตรียมเนื้อหา +uploadingcontent = กำลังอัปโหลดเนื้อหา uploadingpreviewfile = กำลังอัปโหลดไฟล์พรีวิว -committingchanges = Comitting Changes +committingchanges = กำลังทำการเปลี่ยนแปลง done = เรียบร้อย feature.unsupported = อุปกรณ์ของคุณไม่รองรับฟีเจอร์นี้ mods.alphainfo = จำไว้ว่ามอดนั้นยังอยู่ในขั้น alpha และ[scarlet] อาจจะมีบัค[].\nโปรดรายงานปัญหาที่คุณพบใน Github ของ Mindustry หรือ ในเซิฟเวอร์ Discord -mods.alpha = [accent](Alpha) mods = มอด mods.none = [lightgray]ไม่พบมอด! mods.guide = คู่มือการทำมอด mods.report = รายงานบัค mods.openfolder = เปิดมอดโฟลเดอร์ -mods.reload = Reload -mods.reloadexit = The game will now exit, to reload mods. +mods.reload = โหลดใหม่ +mods.reloadexit = เกมจะออกเพื่อจะโหลดมอด mod.display = [gray]Mod:[orange] {0} mod.enabled = [lightgray]เปิดใช้งาน mod.disabled = [scarlet]ปิดใช้งาน mod.disable = ปิดใช้งาน -mod.content = Content: +mod.content = เนื้อหา: mod.delete.error = ไม่สามารถลบมอดได้. ไฟล์อาจอยู่ในระหว่างการใช้งาน. -mod.requiresversion = [scarlet]Requires min game version: [accent]{0} -mod.outdated = [scarlet]Not compatible with V6 (no minGameVersion: 105) +mod.requiresversion = [scarlet]เวอร์ชั่นเกมขั้นต่ำที่ต้องการ: [accent]{0} +mod.outdated = [scarlet]ไม่สามารถใช้ได้ในเวอร์ชั่น V6 (ไม่มี minGameVersion: 105) mod.missingdependencies = [scarlet]dependencies หาย: {0} -mod.erroredcontent = [scarlet]Content Errors -mod.errors = Errors have occurred loading content. -mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing. +mod.erroredcontent = [scarlet]เนื้อหาผิดพลาด +mod.errors = มีข้อผิดพลาดเกิดขึ้นระหว่าโหลดเนื้อหา +mod.noerrorplay = [scarlet]คุณมีมอดที่มีข้อผิดพลาด.[] กรุณาปิดมอดนั้นๆหรือแก้ไขข้อผิดพลาดก่อนที่จะเล่น mod.nowdisabled = [scarlet]มอด '{0}' ไม่มี dependencies:[accent] {1}\n[lightgray]จำเป็นต้องโหลดมอดพวกนี้ก่อน\nมอดนี้จะถูกปิดใช้งานโดยอัตโนมัติ mod.enable = เปิดใช้งาน mod.requiresrestart = เกมจะปิดลงเพื่อใส่มอด mod.reloadrequired = [scarlet]จำเป็นต้องรีโหลด mod.import = นำเข้ามอด -mod.import.file = Import File +mod.import.file = นำเข้าไฟล์ mod.import.github = นำเข้ามอดจาก Github -mod.jarwarn = [scarlet]JAR mods are inherently unsafe.[]\nMake sure you're importing this mod from a trustworthy source! -mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod. +mod.jarwarn = [scarlet]มอดไฟล์ JAR นั้นค่อนข้างไม่ปลอดภัย.[]\nกรุณาเช็คให้แน่ใจว่าคุณนำเข้ามอดนี้จะแหล่งที่เชื่อถือได้! +mod.item.remove = ไอเทมนี้เป็นส่วนหนึ่งของมอด[accent] '{0}'[]. หากต้องการนำออก กรุณาถอดการติดตั้งมอดนั้น mod.remove.confirm = มอดนี้จะถูกลบ mod.author = [lightgray]ผู้สร้าง:[] {0} -mod.missing = เซฟนี้มีมอดที่คุณอัปเดตหรือไม่ได้ติดตั้งแล้ว. อาจทำให้เซฟเสีย. คุณแน่จะหรือว่าจะโหลดเซฟนี้?\n[lightgray]Mods:\n{0} +mod.missing = เซฟนี้มีมอดที่คุณอัปเดตหรือไม่ได้ติดตั้งแล้ว. อาจทำให้เซฟเสีย. คุณแน่จะหรือว่าจะโหลดเซฟนี้?\n[lightgray]มอดที่ใช้:\n{0} mod.preview.missing = ก่อนที่จะนำมอดไปลงใน workshop, คุณต้องใส่รูปพรีวิวก่อน\nใส่รูปชื่อ[accent] preview.png[] ลงในโฟลเดอร์ของมอดแล้วลองอีกครั้ง mod.folder.missing = มอดที่อยู่ในรูปแบบโฟลเดอร์เท่านั้นที่สามารถลงใน workshop ได้\nunzip ไฟล์แล้วลบไฟล์ zip เก่า แล้วรีสตาร์ทเกมหรือรีโหลดมอด -mod.scripts.disable = Your device does not support mods with scripts. You must disable these mods to play the game. +mod.scripts.disable = เครื่องของคุณไม่รองรับมอดที่มี scripts. คุณจำเป็นต้องปิดมอดเหล่านี้ก่อนจึงจะสามารถเล่นได้. about.button = เกี่ยวกับ name = ชื่อ: noname = ใส่ชื่อ[accent] ผู้เล่น[] ก่อน. -planetmap = Planet Map -launchcore = Launch Core +planetmap = แผนที่ดาวเคราะห์ +launchcore = ส่ง Core filename = ชื่อไฟล์: -unlocked = content ใหม่ปลดล็อค! +unlocked = เนื้อหาใหม่ปลดล็อค! completed = [accent]สำเร็จ techtree = ความคืบหน้าในการวิจัย research.list = [lightgray]วิจัย: research = วิจัย researched = [lightgray]{0} วิจัยแล้ว. -research.progress = {0}% complete +research.progress = เสร็จแล้ว {0}% players = {0} ผู้เล่น players.single = {0} ผู้เล่น -players.search = search -players.notfound = [gray]no players found +players.search = ค้นหา +players.notfound = [gray]ไม่พบผู้เล่น server.closing = [accent]กำลังปิดเซิฟเวอร์... server.kicked.kick = คุณถูกเตะออกจากเซิฟเวอร์! server.kicked.whitelist = คุณไม่ได้อยู่ใน whitelisted @@ -168,8 +168,8 @@ server.kicked.nameInUse = มีคนที่ใช้ชืชื่อนี server.kicked.nameEmpty = ชื่อของคุณไม่สามารถใช้ได้ server.kicked.idInUse = คุณเชื่อมต่อกับเซิฟเวอร์นี้อยู่แล้ว เราไม่อนุญาตให้เชื่อมต่อ 2 บัญชีในเซฟเวอร์เดียวกัน server.kicked.customClient = เซิฟเวอร์นี้ไม่รองรับ builds ปรับแต่ง. กรุณาโหลดของ official. -server.kicked.gameover = Game over! -server.kicked.serverRestarting = The server is restarting. +server.kicked.gameover = จบเกม! +server.kicked.serverRestarting = เซิฟเวอร์กำลังเริ่มใหม่. server.versions = เวอร์ชั่นของคุณ:[accent] {0}[]\nเวอร์ชั่นของเซิฟเวอร์:[accent] {1}[] host.info = ปุ่ม [accent]โฮสต์[] นั้นโฮสต์เซฟเวอร์ที่พอร์ท [scarlet]6567[]. \nทุกคนที่อยู่ใน [lightgray]wifi หรือ local network[] เดียวกันจะสามารถเห็นเซิฟเวอร์ของคุณในลิสของเซิฟเวอร์ได้\n\nถ้าคุณต้องการให้ผู้เล่นอื่นๆสามารถเชื่อมต่อได้จากทุกที่โดยใช้ IP, จำเป็นจะต้องใช้การ [accent]port forwarding[] \n\n[lightgray]Note: ถ้าผู้เล่นคนใดมีปัญหาในการเชื่อมต่อ LAN ของคุณ เช็คให้แน่ใจว่าคุณได้อนุญาตให้ Mindustry เข้าถึง local network ของคุณในการตั้งค่า firewall. จำให้ว่า network สาธารณะบางครั้งไม่อนุญาตการค้นหาเซิฟเวอร์ join.info = คุณสามารถใส่ [accent]IP ของเซิฟเวอร์[] เพื่อที่จะเชื่อมต่อหรือค้นหา เซิฟเวอร์ที่ใช้[accent]local network[] จะสามารถเชื่อมโดยใช้\n LAN หรือ WAN ก็ได้\n\n[lightgray]โน้ต: เกมนี้ไม่มีระบบค้นหาเซิฟเวอร์ global ให้อัตโนมัติserver list; ถ้าคุณต้องการเชื่อมต่อกับเซิฟเวอร์โดยใช้ IP, คุณจำเป็นต้องถาม IP ผู้เล่นที่โฮสต์เซิฟเวอร์นั้นๆ. @@ -185,9 +185,9 @@ server.refreshing = กำลังรีเฟรชเซิฟเวอร์ hosts.none = [lightgray]ไม่พบเซิฟเวอร์ใน local! host.invalid = [scarlet]ไม่สามารถเชื่อมต่อกับโฮสต์ได้ -servers.local = Local Servers -servers.remote = Remote Servers -servers.global = Community Servers +servers.local = เซิฟเวอร์ Local +servers.remote = เซิฟเวอร์ Remote +servers.global = เซิฟเวอร์ Community trace = Trace ผู้เล่น/ แกะรอยผู้เล่น trace.playername = ชื่อผู้เล่น: [accent]{0} @@ -269,7 +269,7 @@ copylink = คัดลอกลิ้งค์ back = กลับ data.export = ส่งออกข้อมูล data.import = นำเข้าข้อมูล -data.openfolder = Open Data Folder +data.openfolder = เปิดโฟลเดอร์ข้อมูล data.exported = ข้อมูลส่งออกแล้ว data.invalid = นี่ไม่ใช่ข้อมูลเกมที่ถูกต้อง. data.import.confirm = การนำเข้าข้อมูลจากภายนอกจะเขียนทับข้อมูลเก่า[scarlet]ทั้งหมด[]\n[accent]และไม่สามารถย้อนกลับได้![]\n\nหลังจากที่นำข้อมูลแล้วเกมจะปิดลงโดยทันที @@ -278,18 +278,21 @@ quit.confirm.tutorial = คุณแน่ใจหรือว่าคุณ loading = [accent]กำลังโหลด... reloading = [accent]กำลังรีโหลดมอด... saving = [accent]กำลังเซฟ... -respawn = [accent][[{0}][] to respawn in core +respawn = [accent][[{0}]][]เพื่อเกิดใหม่ที่ core cancelbuilding = [accent][[{0}][]เพื่อเคลียแผน selectschematic = [accent][[{0}][]เพื่อเลือกและคัดลอก pausebuilding = [accent][[{0}][]เพื่อหยุดการสร้างชั่วคราว resumebuilding = [scarlet][[{0}][]เพื่อสร้างต่อ wave = [accent]Wave {0} +wave.cap = [accent]Wave {0}/{1} wave.waiting = [lightgray]Wave ในอีก {0} wave.waveInProgress = [lightgray]Wave กำลังดำเนินการ waiting = [lightgray]กำลังรอ... waiting.players = รอผู้เล่น... wave.enemies = ศัตรูคงเหลือ [lightgray]{0} wave.enemy = ศัตรูคงเหลือ [lightgray]{0} +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = โหลดรูป saveimage = เซฟรูป unknown = ไม่ทราบ @@ -315,7 +318,7 @@ publish.error = การเผยแพร่ไอเท็มดังต่ steam.error = ไม่สามารถเริ่ม Steam service ได้\nError: {0} editor.brush = แปรง -editor.openin = เปิดมน Editor +editor.openin = เปิดใน Editor editor.oregen = การเกิดของแร่ editor.oregen.info = การเกิดของแร่: editor.mapinfo = ข้อมูลของแมพ @@ -328,16 +331,17 @@ editor.generation = การเกิด: editor.ingame = แก้ไขในเกม editor.publish.workshop = เผยแพร่บน Workshop editor.newmap = แมพใหม่ +editor.center = Center workshop = Workshop waves.title = Waves waves.remove = ลบ -waves.never = +waves.never = <ไม่เคย> waves.every = ทุกๆ waves.waves = wave(s) waves.perspawn = ต่อสปาวน์ -waves.shields = shields/wave -waves.to = to -waves.guardian = Guardian +waves.shields = เกราะ/wave +waves.to = ถึง +waves.guardian = การ์เดียน waves.preview = พรีวิว waves.edit = แก้ไข... waves.copy = คัดลอกไปยังคลิปบอร์ด @@ -346,8 +350,8 @@ waves.invalid = waves ในคลิปบอร์ดไม่ถูกต้ waves.copied = คัดลอก Waves แล้ว waves.none = ไม่ได้กำหนดศัตรู\nwave layouts เปล่าจะถูกแทนที่โดย layout ค่าเริ่มต้นของเกม -wavemode.counts = counts -wavemode.totals = totals +wavemode.counts = จำนวน +wavemode.totals = ทั้งหมด wavemode.health = health editor.default = [lightgray]<ค่าเริ่่มต้น> @@ -415,8 +419,9 @@ toolmode.drawteams.description = วาดทีมแทนที่จะเ filters.empty = [lightgray]ไม่มีฟิลเตอร์! เพิ่มด้วยปุ่มด้านล่างนี้ filter.distort = บิดเบือน filter.noise = นอยส์ -filter.enemyspawn = Enemy Spawn Select -filter.corespawn = Core Select +filter.enemyspawn = เบือกที่เกิดศัตรู +filter.spawnpath = Path To Spawn +filter.corespawn = เลือก Core filter.median = เฉลี่ย filter.oremedian = เฉลี่ยแร่ filter.blend = ผสมผสาน @@ -436,10 +441,11 @@ filter.option.circle-scale = สเกลวงกลม filter.option.octaves = เลอะเลือน filter.option.falloff = หลุด filter.option.angle = มุม -filter.option.amount = Amount +filter.option.amount = จำนวน filter.option.block = บล็อค filter.option.floor = พื้น filter.option.flooronto = พื้น Target +filter.option.target = Target filter.option.wall = กำแพง filter.option.ore = แร่ filter.option.floor2 = พื้นชั้น 2 @@ -471,20 +477,14 @@ requirement.wave = ถึง Wave ที่ {0} ใน {1} requirement.core = ทำลาย Core ของศัตรูใน {0} requirement.research = Research {0} requirement.capture = Capture {0} -resume = เล่นต่อในโซน:\n[lightgray]{0} bestwave = [lightgray]Wave สูงสุด: {0} -launch = < ส่ง > -launch.text = Launch -launch.title = ส่งเรียบร้อย -launch.next = [lightgray]โอกาสครั้งหน้าที่ wave {0} -launch.unable2 = [scarlet]ไม่สามารถส่งได้[] -launch.confirm = นี่จะส่งทรัพยากรทั้งหมดใน core ของคุณ\nคุณจะไม่สามารถกลับมาที่ฐานนี้ได้อีก -launch.skip.confirm = ถ้าคุณข้ามตอนนี้, คุณจะไม่สามารถส่งจนกว่าจะถึง waves ต่อๆไป +launch.text = ส่ง +research.multiplayer = Only the host can research items. uncover = เปิดเผย configure = ตั้งค่า Loadout loadout = Loadout -resources = Resources -bannedblocks = Banned Blocks +resources = ทรัพยากร +bannedblocks = บล็อคต้องห้าม addall = เพิ่มทั้งหมด launch.destination = Destination: {0} configure.invalid = จำนวนต้อยู่ระหว่าง 0 ถึง {0}. @@ -508,19 +508,25 @@ error.io = Network I/O error. error.any = Unknown network error. error.bloom = ไม่สามารถเริ่มต้น bloom ได้\nอุปกรณ์ของคุณอาจไม่รองรับ -weather.rain.name = Rain -weather.snow.name = Snow -weather.sandstorm.name = Sandstorm -weather.sporestorm.name = Sporestorm +weather.rain.name = ฝน +weather.snow.name = หิมะ +weather.sandstorm.name = พายุทราย +weather.sporestorm.name = พายุสปอร์ +weather.fog.name = Fog -sectors.unexplored = [lightgray]Unexplored -sectors.resources = Resources: -sectors.production = Production: -sectors.stored = Stored: -sectors.resume = Resume -sectors.launch = Launch -sectors.select = Select +sectors.unexplored = [lightgray]ยังไม่ได้สำรวจ +sectors.resources = ทรัพยากร: +sectors.production = การผลิต: +sectors.stored = เก็บ: +sectors.resume = ทำต่อ +sectors.launch = ส่ง +sectors.select = เลือก sectors.nonelaunch = [lightgray]none (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = Ground Zero sector.craters.name = The Craters @@ -534,22 +540,22 @@ sector.tarFields.name = Tar Fields sector.saltFlats.name = Salt Flats sector.fungalPass.name = Fungal Pass -sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. -sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. -sector.saltFlats.description = On the outskirts of the desert lie the Salt Flats. Few resources can be found in this location.\n\nThe enemy has erected a resource storage complex here. Eradicate their core. Leave nothing standing. -sector.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills. -sector.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology. -sector.stainedMountains.description = Further inland lie the mountains, yet untainted by spores.\nExtract the abundant titanium in this area. Learn how to use it.\n\nThe enemy presence is greater here. Do not give them time to send their strongest units. -sector.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build Titan units. Destroy it. Reclaim that which was lost. -sector.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible. -sector.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks. -sector.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers. -sector.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores. +sector.groundZero.description = ที่ที่ดีที่สุดในการเริ่มต้นอีกครั้ง. ศัตรูมีน้อย. ทรัพยากรน้อยฃ.\nเก็บตะกั่วและทองแดงให้ได้มากที่สุด.\nแล้วไปต่อ. +sector.frozenForest.description = แม้แต่ที่นี่, ที่ที่อยู่ใกล้ภูเขา, สปอร์ก็ยังแพร่มาถึงที่นี่. อากาศที่เย็นเยือกไม่สามารถหยุดยั้งพวกมันได้ตลอดไป.\n\nเริ่มต้นการใช้ไฟฟ้า. สร้างเครื่องกำเนิดไฟฟ้าเผาไหม้ถ่าน. เรียนรู้ที่จะใช้เครื่องซ่อมแซม. +sector.saltFlats.description = ณ ขอบของทะเลทราย เป็นที่ตั้งของ Salt Flats. สามารถพบทรัพยากรบางอย่างได้ที่นี่.\n\nศัตรูได้ตั้งฐานเก็บทรัพยากรไว้ที่นี่. ทำลาย core ของพวกมัน. อย่าให้มีอะไรเหลือ. +sector.craters.description = น้ำขังอยู่ในหลุมอุกกาบาศนี้, ที่นี้เป็นอนุสรณ์ของสองคราม. ยึดพื้นที่นี่มา. เก็บทราย. เผากระจกเมต้า. ปั๊มน้ำเพื่อมาหล่อเย็นป้อมปืนและแท่นขุดเจาะ. +sector.ruinousShores.description = ต่อจากของเสียต่างๆ, เป็นที่ตั้งของชายฝั่ง. ครั้งก่อน, ที่นี่เคยเป็นที่ตั้งของฐานป้องกันชายฝั่ง. ณ ตอนนี้แทบจะไม่เหลือแล้ว. มีเหลือแค่ระบบการป้องกันพื้นฐาน, ทุกอย่างที่เหลือถูกทำลายเหลือเพียงแค่เศษเหล็ก.\nทำการขยายการสำรวจต่อไป. ค้นพบกับเทคโนโลยีอีกครั้ง. +sector.stainedMountains.description = เข้าลึกไปในพื้นที่ จะพบกับภูเขา, ซึ่งยังไม่ถูกสปอร์แตะต้อง.\nขุดไทเทเนียมที่อุดมสมบูรณ์ในพื้นที่นี้. เรียนรู้ที่จะใช้มัน.\n\nมีศัตรูมากขึ้นในบริเวณนี้. อย่าปล่อยให้พวกมันปล่อยยูนิตที่แข็งแกร่งที่สุดของพวกมันออกมา. +sector.overgrowth.description = พื้นที่นี้ถูกปกคลุมไปด้วยพืช, ใกล้กับแหล่งกำเนิของสปอร์.\nศัตรูได้ตั้งฐานเฝ้าระวังไว้ที่นี่. สร้างยูนิตไททัน. ทำลายฐานซะ. แล้วนำสิ่งที่ถูกยึดไปกลับคืนมา. +sector.tarFields.description = ขอบของพื้นที่ผลิตน้ำมัน, อยู่ระหว่างภูเขาและทะเลทราย. หนึ่งในพื้นที่ที่มีแหล่งน้ำมันดิบที่ใช้ได้.\nแม้ว่าจะถูกทิ้งร้าง, พื้นที่นี้ยังคงมีทัพของศัตรูอยู่ใกล้ๆ. อย่าประมาทกับพวกมัน.\n\n[lightgray]วิจัยเทคโนโลยีการแปรรูปน้ำมันหากเป็นไปได้. +sector.desolateRift.description = เป็นพื้นที่ที่อันตรายมาก. ทรัพยากรมากมาย, แต่พื้นที่น้อย. ความเสี่ยงการโดนทำลายล้างสูง. ออกไปจากที่นี่ให้ไวที่สุด. อย่าถูกหลอกโดนระยะเวลาระหว่างการโจมตีของศัตรูที่เว้นไว้นานกว่าปกติ. +sector.nuclearComplex.description = สถานที่ผลิตและแปรรูปทอเรี่ยมเก่า, ถูกทำลายกลายเป็นซาก.\n[lightgray]วิจัยทอเรี่ยมและวิธีการใช้มัน.\n\nศัตรูในบริเวณนี้มีจำนวนมาก, ตรวจตราหาผู้บุกรุกอยู่ตลอดเวลา. +sector.fungalPass.description = พื้นที่ระหว่างพื้นที่สูงและต่ำของภูเขา, พื้นที่นี้เต็มไปด้วยสปอร์. ฐานลาดตระเวนขนาดเล็กของศัตรูตั้งอยู่ที่นี่.\nทำลายมันซะ.\nใช้ยูนิตเด็กเกอร์และครอว์เลอร์. ทำลาย core ทั้งสองซะ. settings.language = ภาษา settings.data = ข้อมูลเกม settings.reset = รีเซ็ตเป็นค่าเริ่มต้น -settings.rebind = Rebind +settings.rebind = แก้ไขปุ่ม settings.resetKey = Reset settings.controls = การควบคุม settings.game = เกม @@ -558,24 +564,30 @@ settings.graphics = กราฟิก settings.cleardata = เคลียร์ข้อมูลเกม... settings.clear.confirm = คุณแน่ใจหรือว่าจะเคลียร์ข้อมูลเกม?\nสิ่งที่ทำไปแล้วจะไม่สามารถย้อนกลับได้! settings.clearall.confirm = [scarlet]คำเตือน![]\nการกระทำนี้จะลบข้อมูลทั้งหมด นั้นรวมไปถึงเซฟ, แมพ, สิ่งที่ปลดล็อคแล้วและ keybinds.\nเมื่อคุณกด 'โอเค' เกมจะลบข้อมูลทุกอย่างและออกโดยอัตโนมัติ -settings.clearsaves.confirm = Are you sure you want to clear all your saves? -settings.clearsaves = Clear Saves +settings.clearsaves.confirm = คุณแน่ใจหรือว่าคุณต้องการเคลียร์เซฟทั้งหมด? +settings.clearsaves = เคลียร์เซฟ +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent]< หยุดชั่วคราว > clear = เคลียร์ banned = [scarlet]แบน -unplaceable.sectorcaptured = [scarlet]Requires captured sector +unplaceable.sectorcaptured = [scarlet]ต้องการ captured sector yes = ใช่ no = ไม่ info.title = ข้อมูล error.title = [crimson]มีบางอย่างผิดพลาดเกิดขึ้น error.crashtitle = มีบางอย่างผิดพลาดเกิดขึ้น -unit.nobuild = [scarlet]Unit can't build +unit.nobuild = [scarlet]ยูนิตไม่สามารถสร้างได้ +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]??? + stat.input = นำเข้า stat.output = ส่งออก stat.booster = บูสเตอร์ -stat.tiles = Required Tiles +stat.tiles = ต้องการ Tiles stat.affinities = Affinities -block.unknown = [lightgray]??? stat.powercapacity = ความจุพลังงาน stat.powershot = หน่วยพลังงาน/นัด stat.damage = ดาเมจ @@ -585,15 +597,16 @@ stat.itemsmoved = ความเร็วเคลื่อนที่ stat.launchtime = เวลาระหว่างการส่ง stat.shootrange = ระยะยิง stat.size = ขนาด -stat.displaysize = Display Size +stat.displaysize = ขนาดที่โชว์ stat.liquidcapacity = จุของเหลว stat.powerrange = ระยะพลังงาน stat.linkrange = Link Range -stat.instructions = Instructions +stat.instructions = คำแนะนำ stat.powerconnections = จำนวนการเชื่อมต่อสูงสุด stat.poweruse = ใช้พลังงาน stat.powerdamage = หน่วยพลังงาน/ดาเมจ stat.itemcapacity = จุไอเท็ม +stat.memorycapacity = Memory Capacity stat.basepowergeneration = กำเนิดพลังงานพื้นฐาน stat.productiontime = เวลาที่ใช้ในการผลิต stat.repairtime = เวลาที่ใช้ในการซ่อมแซมให้สมบูรณ์ @@ -605,18 +618,40 @@ stat.boosteffect = แอฟเฟ็คของบูสต์ stat.maxunits = จำนวนยูนิตสูงสุด stat.health = เลือด stat.buildtime = เวลาในการสร้าง -stat.maxconsecutive = Max Consecutive +stat.maxconsecutive = ติดต่อกันสูงสุด stat.buildcost = ใช้ stat.inaccuracy = ความคลาดเคลื่อน stat.shots = นัด stat.reload = นัด/วินาที stat.ammo = กระสุน -stat.shieldhealth = Shield Health -stat.cooldowntime = Cooldown Time +stat.shieldhealth = เลือดของเกราะ +stat.cooldowntime = เวลา Cooldown +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = จำเป็นต้องใช้เครื่องขุดที่ดีกว่า -bar.noresources = Missing Resources -bar.corereq = Core Base Required +bar.noresources = ทรัพยากรหาย +bar.corereq = ฐาน Core ที่ต้องการ bar.drillspeed = ความเร็วขุด: {0}/s bar.pumpspeed = ความเร็วปั้ม: {0}/s bar.efficiency = ประสิทธิภาพ: {0}% @@ -624,10 +659,11 @@ bar.powerbalance = พลังงาน: {0}/s bar.powerstored = เก็บแล้ว: {0}/{1} bar.poweramount = พลังงาน: {0} bar.poweroutput = พลังงานออก: {0} +bar.powerlines = Connections: {0}/{1} bar.items = ไอเท็ม: {0} bar.capacity = ความจุ: {0} bar.unitcap = {0} {1}/{2} -bar.limitreached = [scarlet] {0} / {1}[white] {2}\n[lightgray][[unit disabled] +bar.limitreached = [scarlet] {0} / {1}[white] {2}\n[lightgray][[ยูนิตถูกปิด] bar.liquid = ของเหลว bar.heat = ความร้อน bar.power = พลังงาน @@ -635,6 +671,8 @@ bar.progress = ความคืบหน้าในการสร้าง bar.input = นำเข้า bar.output = ส่งออก +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray] ดาเมจ bullet.splashdamage = [stat]{0}[lightgray] ดาเมจกระจาย ~[stat] {1}[lightgray] ช่อง bullet.incendiary = [stat]ติดไฟ @@ -642,12 +680,15 @@ bullet.homing = [stat]ติดตาม bullet.shock = [stat]ช็อค bullet.frag = [stat]แตกออก bullet.knockback = [stat]{0}[lightgray] ดันกลับ +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat]แช่แข็ง bullet.tarred = [stat]เปื้อนน้ำมัน bullet.multiplier = [stat]{0}[lightgray]x จำนวนกระสุนต่อ 1 ไอเท็ม bullet.reload = [stat]{0}[lightgray]x ความเร็วยิง unit.blocks = บล็อค +unit.blockssquared = blocks² unit.powersecond = หน่วยพลังงาน/วินาที unit.liquidsecond = หน่วยของเหลว/วินาที unit.itemssecond = ไอเท็ม/วินาที @@ -660,30 +701,29 @@ unit.persecond = /วินาที unit.perminute = /min unit.timesspeed = เท่าเร็วขึ้น unit.percent = % -unit.shieldhealth = shield health +unit.shieldhealth = เลือดเกราะ unit.items = ไอเท็ม -unit.thousands = k -unit.millions = mil -unit.billions = b +unit.thousands = พัน +unit.millions = ล้าน +unit.billions = พันล้าน category.general = ทั่วไป category.power = พลังงาน category.liquids = ของเหลว category.items = ไอเท็ม category.crafting = นำเข้า/ส่งออก -category.shooting = การยิง +category.function = Function category.optional = การเพิ่มประสิทธิภาพทางเลือก setting.landscape.name = ล็อค Landscape แนวนอน setting.shadows.name = เงา setting.blockreplace.name = แนะนำบล็อคโดยอัตโนมัติ setting.linear.name = การกรองเชิงเส้น setting.hints.name = คำแนะนำ -setting.flow.name = Display Resource Flow Rate[scarlet] (experimental) +setting.flow.name = แสดงอัตราการไหลของทรัพยากร[scarlet] (รุ่นทดลอง) setting.buildautopause.name = หยุดสร้างชั่วคราวแบบอัตโนมัติ -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = แอนิเมชั่นน้ำ setting.animatedshields.name = แอนิเมชั่นเกราะ setting.antialias.name = Antialias[lightgray] (จำเป็นต้องรีสตาร์ท)[] -setting.playerindicators.name = Player Indicators +setting.playerindicators.name = ตัวบอกผู้เล่น setting.indicators.name = ตัวบอกศัตรู/พักพวก setting.autotarget.name = เล็งเป้าอัตโนมัติ setting.keyboard.name = การควบคุมแบบ เม้าส์+คีย์บอร์ด @@ -702,25 +742,24 @@ setting.difficulty.name = ระดับความยาก: setting.screenshake.name = การสั่นของจอ setting.effects.name = แสดงเอฟเฟ็ค setting.destroyedblocks.name = แสดงบล็อคที่ถูกทำลาย -setting.blockstatus.name = Display Block Status +setting.blockstatus.name = แสดงสเตตัสของบล็อค setting.conveyorpathfinding.name = Pathfinding setting.sensitivity.name = ความไวของตัวควบคุม setting.saveinterval.name = ระยะห่าวระหว่างเซฟ setting.seconds = {0} วินาที -setting.blockselecttimeout.name = Block Select Timeout -setting.milliseconds = {0} milliseconds +setting.blockselecttimeout.name = การหมดเวลาในการเลือกบล็อค +setting.milliseconds = {0} มิลลิวินาที setting.fullscreen.name = เต็มจอ setting.borderlesswindow.name = วินโดว์แบบไร้ขอบ[lightgray] (อาจจะต้องรีตาร์ท) setting.fps.name = แสดง FPS และ Ping -setting.smoothcamera.name = Smooth Camera -setting.blockselectkeys.name = Show Block Select Keys +setting.smoothcamera.name = กล้องแบบสมูท setting.vsync.name = VSync setting.pixelate.name = Pixelate[lightgray] (ปิดใช้งานแอนิเมชั่น) setting.minimap.name = แสดงมินิแมพ -setting.coreitems.name = Display Core Items (WIP) +setting.coreitems.name = แสดงไอเท็มใน Core (ยังไม่เสร็จสมบูรณ์) setting.position.name = แสดงตำแหน่งของผู้เล่น setting.musicvol.name = ระดับเสียงเพลง -setting.atmosphere.name = Show Planet Atmosphere +setting.atmosphere.name = แสดงชั้นบรรยากาศของดาวเคราะห์ setting.ambientvol.name = ระดับเสียงล้อมรอบ setting.mutemusic.name = ปิดเพลง setting.sfxvol.name = ระดับเสียง SFX @@ -728,10 +767,10 @@ setting.mutesound.name = ปิดเสียง setting.crashreport.name = ส่งรายงานการแครชแบบไม่ระบุตัวตน setting.savecreate.name = สร้างเซฟโดยอัตโนมัติ setting.publichost.name = การมองเห็นเซิฟเวอร์สาธารณะ -setting.playerlimit.name = Player Limit +setting.playerlimit.name = จัดกัดผู้เล่น setting.chatopacity.name = ความโปร่งแสงของแชท setting.lasersopacity.name = ความโปร่งแสงของเลเซอร์พลังงาน -setting.bridgeopacity.name = Bridge Opacity +setting.bridgeopacity.name = ความโปร่งแสงของสะพาน setting.playerchat.name = แสดงบับเบิ้ลแชทของผู้เล่น public.confirm = คุณต้องการให้เกมของคุณเปิดเป็นสาธารณะหรือไม่?\n[accent]ทุกคนจะสามารถเข้าร่วมเกมของคุณได้.\n[lightgray]คุณสามารถเปลี่ยนการตั้งค่านี้ได้ที่ ตั้งค่า->เกม->การมองเห็นเซิฟเวอร์สาธารณะ. public.beta = เกมเวอร์ชั่นเบต้าไม่สามารถเปิดเซิฟเวอร์สาธารณะได้ @@ -743,54 +782,54 @@ keybinds.mobile = [scarlet]การตั้งค่าปุ่มส่ว category.general.name = ทั่วไป category.view.name = วิว category.multiplayer.name = ผู้เล่นหลายคน -category.blocks.name = Block Select +category.blocks.name = เลือกบล็อค command.attack = โจมตี command.rally = ชุมนุม command.retreat = ถอยกลับ -command.idle = Idle +command.idle = อยู่เฉยๆ placement.blockselectkeys = \n[lightgray]Key: [{0}, -keybind.respawn.name = Respawn -keybind.control.name = Control Unit +keybind.respawn.name = เกิดใหม่ +keybind.control.name = ควบคุมยูนิต keybind.clear_building.name = เคลียร์สิ่งก็สร้าง keybind.press = กดปุ่มใดก็ได้... keybind.press.axis = กดแกนหรือปุ่มใดก็ได้... keybind.screenshot.name = แมพ Screenshot -keybind.toggle_power_lines.name = Toggle Power Lasers -keybind.toggle_block_status.name = Toggle Block Statuses +keybind.toggle_power_lines.name = เปิดปิดเลเซอร์พลังงาน +keybind.toggle_block_status.name = เปิดปิดสถานะของบล็อค keybind.move_x.name = เคลื่อนที่ในแกน x keybind.move_y.name = เคลี่อนที่ในแกน y keybind.mouse_move.name = ตามเม้าส์ -keybind.pan.name = Pan View -keybind.boost.name = Boost +keybind.pan.name = แพนวิว +keybind.boost.name = บูสต์ keybind.schematic_select.name = เลือกภูมิภาค keybind.schematic_menu.name = เมนู Schematic keybind.schematic_flip_x.name = กลับ Schematic ในแกน X keybind.schematic_flip_y.name = กลับ Schematic ในแกน Y -keybind.category_prev.name = Previous Category -keybind.category_next.name = Next Category -keybind.block_select_left.name = Block Select Left -keybind.block_select_right.name = Block Select Right -keybind.block_select_up.name = Block Select Up -keybind.block_select_down.name = Block Select Down -keybind.block_select_01.name = Category/Block Select 1 -keybind.block_select_02.name = Category/Block Select 2 -keybind.block_select_03.name = Category/Block Select 3 -keybind.block_select_04.name = Category/Block Select 4 -keybind.block_select_05.name = Category/Block Select 5 -keybind.block_select_06.name = Category/Block Select 6 -keybind.block_select_07.name = Category/Block Select 7 -keybind.block_select_08.name = Category/Block Select 8 -keybind.block_select_09.name = Category/Block Select 9 -keybind.block_select_10.name = Category/Block Select 10 +keybind.category_prev.name = หมวดหมู่ก่อนหน้า +keybind.category_next.name = หมวดหมู่ถ้ดไป +keybind.block_select_left.name = เลือกบล็อค ซ้าย +keybind.block_select_right.name = เลือกบล็อค ขวา +keybind.block_select_up.name = เลือกบล็อค ขึ้น +keybind.block_select_down.name = เลือกบล็อค ลง +keybind.block_select_01.name = หมวดหมู่/เลือกบล็อค 1 +keybind.block_select_02.name = หมวดหมู่/เลือกบล็อค 2 +keybind.block_select_03.name = หมวดหมู่/เลือกบล็อค 3 +keybind.block_select_04.name = หมวดหมู่/เลือกบล็อค 4 +keybind.block_select_05.name = หมวดหมู่/เลือกบล็อค 5 +keybind.block_select_06.name = หมวดหมู่/เลือกบล็อค 6 +keybind.block_select_07.name = หมวดหมู่/เลือกบล็อค 7 +keybind.block_select_08.name = หมวดหมู่/เลือกบล็อค 8 +keybind.block_select_09.name = หมวดหมู่/เลือกบล็อค 9 +keybind.block_select_10.name = หมวดหมู่/เลือกบล็อค 10 keybind.fullscreen.name = เปิด/ปิด Fullscreen keybind.select.name = เลือก/ยิง keybind.diagonal_placement.name = วางเป็นแนวทแยง keybind.pick.name = เลือกบล็อค keybind.break_block.name = ทุบบล็อค keybind.deselect.name = ยกเลิกการเบือก -keybind.pickupCargo.name = Pickup Cargo -keybind.dropCargo.name = Drop Cargo -keybind.command.name = Command +keybind.pickupCargo.name = ยกของขึ้น +keybind.dropCargo.name = วางของลง +keybind.command.name = คำสั่ง keybind.shoot.name = ยิง keybind.zoom.name = ซูม keybind.menu.name = เมนู @@ -811,7 +850,7 @@ keybind.zoom_minimap.name = ซูมมินิแมพ mode.help.title = คำอธิบายโหมด mode.survival.name = เอาชีวิตรอด mode.survival.description = โหมดปกติ. ทรัพยากรมีจำกัดและ wave มาโดยอัตโนมัติ.\n[gray]ต้องมีสปาวน์ของศัตรูเพื่อที่จะเล่น. -mode.sandbox.name = Sandbox +mode.sandbox.name = โหมดอิสระ mode.sandbox.description = ทรัพยาดรไม่จำกัดและ wave ไม่จับเวลา. mode.editor.name = Editor mode.pvp.name = PvP @@ -822,13 +861,14 @@ mode.custom = กฎแบบกำหนดเอง rules.infiniteresources = ทรัพยากรไม่จำกัด rules.reactorexplosions = การระเบิดของ +rules.schematic = Schematics Allowed rules.wavetimer = ตัวนับเวลาปล่อยคลื่น(รอบ) rules.waves = คลื่น(รอบ) rules.attack = โหมดการโจมตี -rules.buildai = AI Building +rules.buildai = สิ่ก่อสร้างของ AI rules.enemyCheat = AI (ทีมสีแดง) มีทรัพยากรไม่จำกัด rules.blockhealthmultiplier = พหุคูณเลือดของบล็อค -rules.blockdamagemultiplier = Block Damage Multiplier +rules.blockdamagemultiplier = พหุคูณดาเมจของบล็อค rules.unitbuildspeedmultiplier = พหุคูณความเร็วในการสร้างยูนิต rules.unithealthmultiplier = พหุคูณเลือดของยูนิต rules.unitdamagemultiplier = พหุคูณพลังโจมตีของยูนิต @@ -836,28 +876,30 @@ rules.enemycorebuildradius = รัศมีห้ามสร้างบริ rules.wavespacing = ระยะเวลาระหว่างคลื่น(รอบ):[lightgray] (วินาที) rules.buildcostmultiplier = พหุคูณจำนวนทรัพยากรที่ใช้ในการสร้าง rules.buildspeedmultiplier = พหุคูณความเร็วในการสร้าง -rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier +rules.deconstructrefundmultiplier = พหุคูณการคืนทรัพยากรเมื่อทำการทำลายสิ่งก่อสร้าง rules.waitForWaveToEnd = คลื่น(รอบ)รอศัตรู rules.dropzoneradius = รัศมีจุดเกิดของศัตรู:[lightgray] (ช่อง) -rules.unitammo = Units Require Ammo +rules.unitammo = ยูนิตต้องใช้กระสุน rules.title.waves = คลื่น(รอบ) rules.title.resourcesbuilding = ทรัพยากรและสิ่งก่อสร้าง rules.title.enemy = ศัตรู rules.title.unit = ยูนิต rules.title.experimental = Experimental -rules.title.environment = Environment -rules.lighting = Lighting -rules.fire = Fire -rules.explosions = Block/Unit Explosion Damage -rules.ambientlight = Ambient Light -rules.weather = Weather -rules.weather.frequency = Frequency: -rules.weather.duration = Duration: +rules.title.environment = สิ่งแวดล้อม +rules.lighting = แสง +rules.enemyLights = Enemy Lights +rules.fire = ไฟ +rules.explosions = ดาเมจบล็อค/ยูนิตระเบิด +rules.ambientlight = แสงจากแวดล้อม +rules.weather = สภาพอากาศ +rules.weather.frequency = ความถี่: +rules.weather.duration = ระยะเวลา: content.item.name = ไอเท็ม content.liquid.name = ของเหลว content.unit.name = ยูนิต content.block.name = บล็อค + item.copper.name = ทองแดง item.lead.name = ตะกั่ว item.coal.name = ถ่านหิน @@ -879,79 +921,63 @@ liquid.slag.name = เศษแร่ liquid.oil.name = น้ำมัน liquid.cryofluid.name = โครโรฟิวล์ -item.explosiveness = [lightgray]ค่าการระเบิด: {0}% -item.flammability = [lightgray]ความไวต่อไฟ: {0}% -item.radioactivity = [lightgray]ค่ากัมมันตภาพรังสี: {0}% - -unit.health = [lightgray]เลือด: {0} -unit.speed = [lightgray]ความเร็ว: {0} -unit.weapon = [lightgray]Weapon: {0} -unit.itemcapacity = [lightgray]Item Capacity: {0} -unit.minespeed = [lightgray]Mining Speed: {0}% -unit.minepower = [lightgray]Mining Power: {0} -unit.ability = [lightgray]Ability: {0} -unit.buildspeed = [lightgray]Building Speed: {0}% - -liquid.heatcapacity = [lightgray]ความจุความร้อน: {0} -liquid.viscosity = [lightgray]ความหนืด: {0} -liquid.temperature = [lightgray]อุณหภูมิ: {0} - unit.dagger.name = แด็กเกอร์ -unit.mace.name = Mace +unit.mace.name = เมส unit.fortress.name = ฟอร์เทรส -unit.nova.name = Nova -unit.pulsar.name = Pulsar -unit.quasar.name = Quasar +unit.nova.name = โนว่า +unit.pulsar.name = พอวซ่า +unit.quasar.name = ควอซ่า unit.crawler.name = ครอว์เลอร์ -unit.atrax.name = Atrax -unit.spiroct.name = Spiroct -unit.arkyid.name = Arkyid -unit.toxopid.name = Toxopid -unit.flare.name = Flare -unit.horizon.name = Horizon -unit.zenith.name = Zenith -unit.antumbra.name = Antumbra -unit.eclipse.name = Eclipse -unit.mono.name = Mono -unit.poly.name = Poly -unit.mega.name = Mega -unit.quad.name = Quad -unit.oct.name = Oct -unit.risso.name = Risso -unit.minke.name = Minke -unit.bryde.name = Bryde -unit.sei.name = Sei -unit.omura.name = Omura -unit.alpha.name = Alpha -unit.beta.name = Beta -unit.gamma.name = Gamma -unit.scepter.name = Scepter -unit.reign.name = Reign -unit.vela.name = Vela -unit.corvus.name = Corvus +unit.atrax.name = เอแทรซ +unit.spiroct.name = สปิรอคท์ +unit.arkyid.name = อาร์คิดย์ +unit.toxopid.name = โทโสพิด +unit.flare.name = แฟลร์ +unit.horizon.name = ฮอไรซอน +unit.zenith.name = ซีนิท +unit.antumbra.name = แอนทัมบรา +unit.eclipse.name = อีคลิปส์ +unit.mono.name = โมโน +unit.poly.name = โพลี +unit.mega.name = เมก้า +unit.quad.name = ควอด +unit.oct.name = ออกค์ +unit.risso.name = ริสโส +unit.minke.name = มิงค์ +unit.bryde.name = ไบรดย์ +unit.sei.name = ไซย์ +unit.omura.name = โอมูร่า +unit.alpha.name = อัลฟ่า +unit.beta.name = บีตเา +unit.gamma.name = แกมม่า +unit.scepter.name = สเซปเตอร์ +unit.reign.name = เรน +unit.vela.name = เวล่า +unit.corvus.name = คอร์วัส -block.resupply-point.name = Resupply Point -block.parallax.name = Parallax -block.cliff.name = Cliff +block.resupply-point.name = จุดเติมของ +block.parallax.name = พาราแล็ซ +block.cliff.name = หน้าผ่า block.sand-boulder.name = ก้อนหินทราย block.grass.name = หญ้า block.slag.name = Slag +block.space.name = Space block.salt.name = เกลือ -block.salt-wall.name = Salt Wall +block.salt-wall.name = กำแพงเกลือ block.pebbles.name = ก้อนกรวด block.tendrils.name = ไม้เลื้อย -block.sand-wall.name = Sand Wall +block.sand-wall.name = กำแพงทราย block.spore-pine.name = ต้นสนสปอร์ -block.spore-wall.name = Spore Wall -block.boulder.name = Boulder -block.snow-boulder.name = Snow Boulder +block.spore-wall.name = กำแพงสปอร์ +block.boulder.name = ก้อยหินใหญ่ +block.snow-boulder.name = หินหิมะใหญ่ block.snow-pine.name = ต้นสนที่คลุมหิมะ block.shale.name = หินดินดาน block.shale-boulder.name = ก้อนหินดินดาน block.moss.name = ตะไคร่น้ำ block.shrubs.name = พุ่มไม้ block.spore-moss.name = พุ่มไม้สปอร์ -block.shale-wall.name = Shale Wall +block.shale-wall.name = กำแพงหินดินดาน block.scrap-wall.name = กำแพงเศษเหล็ก block.scrap-wall-large.name = กำแพงเศษเหล็กขนาดใหญ่ block.scrap-wall-huge.name = กำแพงเศษเหล็กขนาดใหญ่มาก @@ -969,7 +995,7 @@ block.deepwater.name = น้ำลึก block.water.name = น้ำ block.tainted-water.name = น้ำเสีย block.darksand-tainted-water.name = น้ำเสียบนทรายดำ -block.tar.name = น้ำมันดิน +block.tar.name = น้ำมันดิบ block.stone.name = หิน block.sand.name = ทราย block.darksand.name = ทรายดำ @@ -979,17 +1005,18 @@ block.craters.name = หลุมอุกกาบาต block.sand-water.name = น้ำบนทราย block.darksand-water.name = น้ำบนทรายดำ block.char.name = ถ่าน -block.dacite.name = Dacite -block.dacite-wall.name = Dacite Wall +block.dacite.name = ดาไซต์ +block.dacite-wall.name = กำแพงดาไซต์ +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = น้ำแข็งหิมะ -block.stone-wall.name = Stone Wall -block.ice-wall.name = Ice Wall -block.snow-wall.name = Snow Wall -block.dune-wall.name = Dune Wall +block.stone-wall.name = กำแพงหิน +block.ice-wall.name = กำแพงน้ำแข็ง +block.snow-wall.name = กำแพงหิมะ +block.dune-wall.name = กำแพงเนินทราย block.pine.name = ต้นสน -block.dirt.name = Dirt -block.dirt-wall.name = Dirt Wall -block.mud.name = Mud +block.dirt.name = ดิน +block.dirt-wall.name = กำแพงดิน +block.mud.name = โคลน block.white-tree-dead.name = ต้นไม้ขาวที่ตายแล้ว block.white-tree.name = ต้มไม้ขาว block.spore-cluster.name = กลุ่มสปอร์ @@ -1005,7 +1032,7 @@ block.dark-panel-4.name = แผ่นดำ 4 block.dark-panel-5.name = แผ่นดำ 5 block.dark-panel-6.name = แผ่นดำ 6 block.dark-metal.name = เหล็กดำ -block.basalt.name = Basalt +block.basalt.name = บะซอลต์ block.hotrock.name = หินร้อน block.magmarock.name = หินแมกม่า block.copper-wall.name = กำแพงทองแดง @@ -1027,7 +1054,7 @@ block.hail.name = แฮล block.lancer.name = แลนเซอร์ block.conveyor.name = สายพาน block.titanium-conveyor.name = สายพานไทเทเนี่ยม -block.plastanium-conveyor.name = Plastanium Conveyor +block.plastanium-conveyor.name = สายพานพสาตตาเนี่ยม block.armored-conveyor.name = สายพานเสริมเกราะ block.armored-conveyor.description = เคลื่อนย้ายไอเท็มได้เร็วเทียบเท่าสายพานไทเทเนี่ยม แต่มีเกราะที่แข็งแรงกว่า ไม่สามารถรับไอเท็มจากด้านข้างและจากสายพานชนิดอื่นนอกจากสายพานชนิดเดียวกัน. block.junction.name = ทางแยก @@ -1036,10 +1063,10 @@ block.distributor.name = ตัวแจกจ่าย block.sorter.name = เครื่องแยก block.inverted-sorter.name = เครื่องแยกกลับด้าน block.message.name = ตัวเก็บข้อความ -block.illuminator.name = Illuminator -block.illuminator.description = A small, compact, configurable light source. Requires power to function. +block.illuminator.name = ตัวเปล่งแสง +block.illuminator.description = แหล่งกำเนิดแสงขนาดเล็ก สามารถดัดแปลงได้. จำเป็นต้องใช้พลังงานในการทำงาน. block.overflow-gate.name = ประตูระบายไอเทม -block.underflow-gate.name = Underflow Gate +block.underflow-gate.name = ประตูระบายไอเท็มย้อนกลับ block.silicon-smelter.name = เตาเผาซิลิกอน block.phase-weaver.name = เครื่องทอใยเฟส block.pulverizer.name = เครื่องบด @@ -1055,7 +1082,7 @@ block.surge-tower.name = เสาเสิร์จ block.diode.name = ไดโอดแบตเตอรี่ block.battery.name = แบตเตอรี่ block.battery-large.name = แบตเตอรี่ขนาดใหญ่ -block.combustion-generator.name = เครื่องกำเนิดไฟฟ้าโดยการสันดาป +block.combustion-generator.name = เครื่องกำเนิดไฟฟ้าเผาไหม้ถ่าน block.steam-generator.name = เครื่องกำเนิดไฟฟ้าไอน้ำ block.differential-generator.name = เครื่องกำเนิดไฟฟ้าดิฟเฟอเร่นเตอร์ block.impact-reactor.name = เตาปฏิกรณ์อัดกระแทก @@ -1075,6 +1102,7 @@ block.power-source.name = จุดกำเนิดพลังงาน block.unloader.name = ตัวถ่ายไอเทม block.vault.name = ตู้นิรภัย block.wave.name = เวฟ +block.tsunami.name = Tsunami block.swarmer.name = สวอร์มเมอร์ block.salvo.name = ซัลโว block.ripple.name = ริปเปิล @@ -1114,37 +1142,39 @@ block.arc.name = อาร์ค block.rtg-generator.name = เครื่องกำเนิดไฟฟ้า RTG block.spectre.name = สเปคเตอร์ block.meltdown.name = เมลท์ดาวน์ +block.foreshadow.name = Foreshadow block.container.name = ตู้เก็บของ block.launch-pad.name = ฐานส่งของ block.launch-pad-large.name = ฐานส่งของขนาดใหญ่ block.segment.name = Segment -block.command-center.name = Command Center -block.ground-factory.name = Ground Factory -block.air-factory.name = Air Factory -block.naval-factory.name = Naval Factory -block.additive-reconstructor.name = Additive Reconstructor -block.multiplicative-reconstructor.name = Multiplicative Reconstructor -block.exponential-reconstructor.name = Exponential Reconstructor +block.command-center.name = ศูนย์ควบคุม +block.ground-factory.name = โรงงานภาคพื้นดิน +block.air-factory.name = โรงงานภาคอากาศ +block.naval-factory.name = โรงงานทางน้ำ +block.additive-reconstructor.name = Reconstructor แบบบวก +block.multiplicative-reconstructor.name = Reconstructor แบบคูณ +block.exponential-reconstructor.name = Reconstructor แบบเอ็กโพเนนเชียว block.tetrative-reconstructor.name = Tetrative Reconstructor -block.payload-conveyor.name = Mass Conveyor -block.payload-router.name = Payload Router -block.disassembler.name = Disassembler -block.silicon-crucible.name = Silicon Crucible -block.overdrive-dome.name = Overdrive Dome +block.payload-conveyor.name = สายพาน Mass +block.payload-router.name = ตัวเปลี่ยเส้นทาง Payload +block.disassembler.name = ตัวชำแหละ +block.silicon-crucible.name = เบ้าหลอมซิลิคอน +block.overdrive-dome.name = โดม Overdrive -block.switch.name = Switch -block.micro-processor.name = Micro Processor -block.logic-processor.name = Logic Processor -block.hyper-processor.name = Hyper Processor -block.logic-display.name = Logic Display -block.large-logic-display.name = Large Logic Display -block.memory-cell.name = Memory Cell +block.switch.name = สวิชต์ +block.micro-processor.name = ตัวประมวลผล Micro +block.logic-processor.name = ตัวประมวลผล Logic +block.hyper-processor.name = ตัวประมวลผล Hyper +block.logic-display.name = ตัวแสดง Logic +block.large-logic-display.name = ตัวแสดง Logic ขนาดใหญ่ +block.memory-cell.name = เซลล์ความจำ +block.memory-bank.name = Memory Bank team.blue.name = น้ำเงิน team.crux.name = แดง team.sharded.name = ส้ม team.orange.name = ส้ม -team.derelict.name = derelict +team.derelict.name = ไม่มี team.green.name = เขียว team.purple.name = ม่วง @@ -1208,12 +1238,12 @@ block.spore-press.description = อัดกระเปาะสปอร์ด block.pulverizer.description = บดเศษเหล็กให้เป็นทรายละเอียด. block.coal-centrifuge.description = ทำให้น้ำมันแข็งตัวเป็นก้อนถ่านหิน. block.incinerator.description = ทำลายไอเท็มหรือของเหลวทุกอย่างที่ได้รับมา. -block.power-void.description = ทิ้งพลังงานทั้งหมดที่ได้รับ. เฉพาะ Sandbox เท่านั้น. -block.power-source.description = ส่งออกพลังงานไม่จำกัด. เฉพาะ Sandbox เท่านั้น. -block.item-source.description = ส่งออกไอเท็มไม่จำกัด. เฉพาะ Sandbox เท่านั้น. -block.item-void.description = ทำลายทุกไอเท็ม . เฉพาะ Sandbox เท่านั้น. -block.liquid-source.description = ส่งออกของเหลวไม่จำกัด. เฉพาะ Sandbox เท่านั้น. -block.liquid-void.description = Removes any liquids. Sandbox only. +block.power-void.description = ทิ้งพลังงานทั้งหมดที่ได้รับ. เฉพาะ โหมดอิสระ เท่านั้น. +block.power-source.description = ส่งออกพลังงานไม่จำกัด. เฉพาะ โหมดอิสระ เท่านั้น. +block.item-source.description = ส่งออกไอเท็มไม่จำกัด. เฉพาะ โหมดอิสระ เท่านั้น. +block.item-void.description = ทำลายทุกไอเท็ม . เฉพาะ โหมดอิสระ เท่านั้น. +block.liquid-source.description = ส่งออกของเหลวไม่จำกัด. เฉพาะ โหมดอิสระ เท่านั้น. +block.liquid-void.description = ทิ้งของเหลวทุกชนิด. เฉพาะ โหมดอิสระ เท่านั้น. block.copper-wall.description = บล็อคป้องกันราคาถูก.\nมีประโยชน์สำหรับป้องกัน core และป้อมปืนใน wave แรกๆ. block.copper-wall-large.description = บล็อคป้องกันราคาถูก.\nมีประโยชน์สำหรับป้องกัน core และป้อมปืนใน wave แรกๆ.\nคลอบคลุมหลายข่อง. block.titanium-wall.description = บล็อคป้องกันแข็งแกร่งปานกลาง.\nป้องกันศัตรูได้ในระดับหนึ่ง. @@ -1222,8 +1252,8 @@ block.plastanium-wall.description = กำแพงพิเศษที่ส block.plastanium-wall-large.description = กำแพงพิเศษที่สามารถดูดซับไฟฟ้าและป้องกันการต่อไฟกับโหนดพลังงานโดยอัตโนมัติได้.\nคลอบคลุมหลายช่อง. block.thorium-wall.description = บล็อคป้องกันที่แข็งแรง.\nป้องกันศัตรูได้อย่างดี. block.thorium-wall-large.description = บล็อคป้องกันที่แข็งแรง.\nป้องกันศัตรูได้อย่างดี.\nคลอบคลุมหลายช่อง. -block.phase-wall.description = A wall coated with special phase-based reflective compound. Deflects most bullets upon impact. -block.phase-wall-large.description = A wall coated with special phase-based reflective compound. Deflects most bullets upon impact.\nคลอบคลุมหลายช่อง. +block.phase-wall.description = กำแพงที่เคลือบด้วยวัสดุสะท้อนพิเศษจำพวก phase. เบี่ยงเบนกระสุนส่วนใหญ่ที่รับมา. +block.phase-wall-large.description = กำแพงที่เคลือบด้วยวัสดุสะท้อนพิเศษจำพวก phase. เบี่ยงเบนกระสุนส่วนใหญ่ที่รับมา.\nคลอบคลุมหลายช่อง. block.surge-wall.description = บล็อคป้องกันที่มีทนทานสูง.\nสะสมพลังงานจากกระสุน, แล้วปล่อยออกมาแบบสุ่ม. block.surge-wall-large.description = บล็อคป้องกันที่มีทนทานสูง.\nสะสมพลังงานจากกระสุน, แล้วปล่อยออกมาแบบสุ่ม.\nคลอบคลุมหลายช่อง. block.door.description = ประตูขนาดเล็ก. สามารถเปิดได้โดยการกด. @@ -1235,7 +1265,7 @@ block.force-projector.description = สร้างสนามพลังง block.shock-mine.description = ดาเมจศัตรูที่เหยียบ. แถบจะล่องหนต่อศัตรู. block.conveyor.description = บล็อคขนส่งไอเท็มพื้นฐาน. เคลื่อนไอเท็มไปข้างหน้าและใส่ลงบล็อคโดยอัตโนมัติ. สามารถหมุนได้. block.titanium-conveyor.description = บล็อคขนส่งไอเท็มขั้นสูง. เคลื่อนไอเท็มเร็วกว่าสายพานทั่วไป. -block.plastanium-conveyor.description = Moves items in batches.\nAccepts items at the back, and unloads them in three directions at the front. +block.plastanium-conveyor.description = เคลื่อนย้ายไอเท็มเป็นชุด.\nรับไอดท็มจากด้านหลัง, และนำออกไปสามทางข้างหน้า. block.junction.description = มีหน้าที่เป็นสะพานสำหรับสายพาน 2 สายข้ามกัน. มีประโยชน์สำหรับเวลาสายพาน 2 สายที่ขนไอเท็มมา 2 ชนิดไปยัง 2 สถานที่. block.bridge-conveyor.description = บล็อคขนส่งไอเท็มขั้นสูง. ทำให้สามารถส่งไอเท็มข้ามบล็อคใดก็ได้ 3 ช่อง. block.phase-conveyor.description = บล็อคขนส่งไอเท็มขั้นสูง. ใช้พลังงานเพื่อส่งไอเท็มไปยังสายพานเฟสอีกอัน ข้ามได้หลายช่อง. @@ -1244,14 +1274,14 @@ block.inverted-sorter.description = แยกไอเท็มคล้าย block.router.description = รับไอเท็มแล้วส่งออก 3 ทางเท่าๆกัน. มีประโยชน์สำหรับแยกไอเท็มจากแหล่งเดียวไปหลายที่.\n\n[scarlet]อย่าวางไว้ติดกับทางส่งไอเท็มเข้าเพราะของออกจะไปอุดตันได้.[] block.distributor.description = เร้าเตอร์ขั้นสูง. แยกไอเท็มออก 7 ทางอย่างเท่าๆกัน. block.overflow-gate.description = ของจะออกจากข้างๆเมื่อทางข้างหน้ถูกบล็อคเท่านั้น. -block.underflow-gate.description = The opposite of an overflow gate. Outputs to the front if the left and right paths are blocked. +block.underflow-gate.description = ตรงข้ามกับประตูระบายไอเท็ม. ส่งออกไอเท็มไปข้างหน้าหากทางซ้ายและขวาถูกบล็อค. block.mass-driver.description = บล็อคขนส่งไอเท็มขั้นสุดยอด. รวบรวมไอเท็มจำนวนหนึ่งแล้วยิงไปหาแมสไดรเวอร์อีกอันที่อยู่ไกลออกไป. ต้องใช้พลังงานในการใช้งาน. block.mechanical-pump.description = ปั๊มราคาถูก เอ้าพุธต์ช้า แต่ไม่ใช้พลังงาน. block.rotary-pump.description = ปั๊มขั้นสูง. ปั๊มของเหลวได้มากขึ้นแค่ใช้พลังงาน. block.thermal-pump.description = ปั๊มขั้นสุดยอด. block.conduit.description = บล็อคขนส่งของเหลวพื้นฐาน. เคลื่อนของเหลวไปข้างหน้า. ใช้ร่วมกับปั๊มและรางน้ำอื่นๆ. block.pulse-conduit.description = บล็อคขนส่งของเหลวขั้นสูง. เคลื่อนย้ายของเหลวเร็วขึ้นและเก็บเยอะกว่ารางน้ำธรรมดา. -block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less. +block.plated-conduit.description = เคลื่อนย้ายของเหลวได้เร็วพอๆกับ ท่อน้ำพัลซ์, แต่มีเกราะที่หนากว่า. ไม่รับของเหลวจากด้านข้างจากอย่างอื่นนอกจากท่อน้ำด้วยกันเอง.\nรั่วน้อยกว่า. block.liquid-router.description = รับของเหลวจากทางเดียวแล้วส่งออก 3 ทางเท่าๆกัน. สามารถเก็บของ้หลวได้จำนวนหนึ่ง. มีประโยชน์สำหรับการแยกของเหลวจากแหล่งเดียวไปหลายที่. block.liquid-tank.description = เก็บของเหลวจำนวนมาก. ใช่สำหรับสร้างบัฟเฟอร์ในเวลาที่ความต้องการของทรัพยากรไม่คงที่หรือเป็นตัวเซฟสำหรับบล็อคที่จำเป็นต้องใช้การหล่อเย็น. block.liquid-junction.description = ทำหน้าที่เป็นสะพานสำหรับรางน้ำ 2 รางที่ข้ามกันที่มีของเหลว 2 ชนิด ซึ่งต้องการจะไปคนละที่. @@ -1302,4 +1332,4 @@ block.cyclone.description = ป้อมปืนต่อต้านอาก block.spectre.description = ปืนใหญ่ลำกล้องคูขนาดยักษ์. ยิงกระสุนเจาะเกราะใส่ศัตรูทั้งบนอากาศและภาดพื้นดิน. block.meltdown.description = ปืนใหญ่เลเซอร์ขนาดยักษ์. ชาร์จแล้วยิงลำแสงเลเซอร์ใส่ศัตรูที่อยู่ใกล้. จำเป็นต้องใช้สารหล่อเย็น. block.repair-point.description = ซ่อมแซมยูนิตที่อยู่ในรัศมีอย่างต่อเนื่อง. -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. \ No newline at end of file +block.segment.description = ทำดาเมจและทำลายโปรเจกไตล์ที่กำลังเข้ามา. โปรเจกไตล์เลเซอร์จะไม่ถูกล็อคเป้าด้วยบล็อคนี้. diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index cfac48c897..8b9f3a97aa 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -55,6 +55,7 @@ schematic.saved = Schematic saved. schematic.delete.confirm = This schematic will be utterly eradicated. schematic.rename = Rename Schematic schematic.info = {0}x{1}, {2} blocks +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = Waves Defeated:[accent] {0} stat.enemiesDestroyed = Enemies Destroyed:[accent] {0} @@ -100,7 +101,6 @@ done = Done feature.unsupported = Your device does not support this feature. mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord. -mods.alpha = [accent](Alpha) mods = Mods mods.none = [lightgray]No mods found! mods.guide = Modding Guide @@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] to select+copy pausebuilding = [accent][[{0}][] to pause building resumebuilding = [scarlet][[{0}][] to resume building wave = [accent]Dalga {0} +wave.cap = [accent]Wave {0}/{1} wave.waiting = Dalganin baslamasina: {0} wave.waveInProgress = [lightgray]Wave in progress waiting = Bekleniyor... waiting.players = Waiting for players... wave.enemies = [lightgray]{0} Enemies Remaining wave.enemy = [lightgray]{0} Enemy Remaining +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = Resimden Yukle saveimage = Resimi kaydet unknown = Bilinmeyen @@ -328,6 +331,7 @@ editor.generation = Generation: editor.ingame = Edit In-Game editor.publish.workshop = Publish On Workshop editor.newmap = New Map +editor.center = Center workshop = Workshop waves.title = Waves waves.remove = Remove @@ -416,6 +420,7 @@ filters.empty = [lightgray]No filters! Add one with the button below. filter.distort = Distort filter.noise = Noise filter.enemyspawn = Enemy Spawn Select +filter.spawnpath = Path To Spawn filter.corespawn = Core Select filter.median = Median filter.oremedian = Ore Median @@ -440,6 +445,7 @@ filter.option.amount = Amount filter.option.block = Block filter.option.floor = Floor filter.option.flooronto = Target Floor +filter.option.target = Target filter.option.wall = Wall filter.option.ore = Ore filter.option.floor2 = Secondary Floor @@ -471,15 +477,9 @@ requirement.wave = Reach Wave {0} in {1} requirement.core = Destroy Enemy Core in {0} requirement.research = Research {0} requirement.capture = Capture {0} -resume = Resume Zone:\n[lightgray]{0} bestwave = [lightgray]Best: {0} -launch = Launch launch.text = Launch -launch.title = Launch Successful -launch.next = [lightgray]next opportunity at wave {0} -launch.unable2 = [scarlet]Unable to LAUNCH.[] -launch.confirm = This will launch all resources in your core.\nYou will not be able to return to this base. -launch.skip.confirm = If you skip now, you will not be able to launch until later waves. +research.multiplayer = Only the host can research items. uncover = Uncover configure = Configure Loadout loadout = Loadout @@ -512,6 +512,7 @@ weather.rain.name = Rain weather.snow.name = Snow weather.sandstorm.name = Sandstorm weather.sporestorm.name = Sporestorm +weather.fog.name = Fog sectors.unexplored = [lightgray]Unexplored sectors.resources = Resources: @@ -521,6 +522,11 @@ sectors.resume = Resume sectors.launch = Launch sectors.select = Select sectors.nonelaunch = [lightgray]none (sun) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = Ground Zero sector.craters.name = The Craters @@ -560,6 +566,10 @@ settings.clear.confirm = Are you sure you want to clear this data?\nWhat is done settings.clearall.confirm = [scarlet]WARNING![]\nThis will clear all data, including saves, maps, unlocks and keybinds.\nOnce you press 'ok' the game will wipe all data and automatically exit. settings.clearsaves.confirm = Are you sure you want to clear all your saves? settings.clearsaves = Clear Saves +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = Duraklatildi clear = Clear banned = [scarlet]Banned @@ -570,12 +580,14 @@ info.title = [accent]Bilgi error.title = [crimson]Bir hata olustu error.crashtitle = Bir hata olustu unit.nobuild = [scarlet]Unit can't build +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]??? + stat.input = Input stat.output = Output stat.booster = Booster stat.tiles = Required Tiles stat.affinities = Affinities -block.unknown = [lightgray]??? stat.powercapacity = Guc kapasitesi stat.powershot = Guc/Saldiri hizi stat.damage = Damage @@ -594,6 +606,7 @@ stat.powerconnections = Max Connections stat.poweruse = Guc kullanimi stat.powerdamage = Power/Damage stat.itemcapacity = Esya kapasitesi +stat.memorycapacity = Memory Capacity stat.basepowergeneration = Base Power Generation stat.productiontime = Production Time stat.repairtime = Block Full Repair Time @@ -613,6 +626,28 @@ stat.reload = Yeniden doldurma stat.ammo = Ammo stat.shieldhealth = Shield Health stat.cooldowntime = Cooldown Time +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Better Drill Required bar.noresources = Missing Resources @@ -624,6 +659,7 @@ bar.powerbalance = Power: {0} bar.powerstored = Stored: {0}/{1} bar.poweramount = Power: {0} bar.poweroutput = Power Output: {0} +bar.powerlines = Connections: {0}/{1} bar.items = Items: {0} bar.capacity = Capacity: {0} bar.unitcap = {0} {1}/{2} @@ -635,6 +671,8 @@ bar.progress = Build Progress bar.input = Input bar.output = Output +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray] dmg bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.incendiary = [stat]incendiary @@ -642,12 +680,15 @@ bullet.homing = [stat]homing bullet.shock = [stat]shock bullet.frag = [stat]frag bullet.knockback = [stat]{0}[lightgray] knockback +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat]freezing bullet.tarred = [stat]tarred bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier bullet.reload = [stat]{0}[lightgray]x reload unit.blocks = Yapilar +unit.blockssquared = blocks² unit.powersecond = saniyede bir unit.liquidsecond = Saniyede bir unit.itemssecond = Saniyede bir @@ -670,7 +711,7 @@ category.power = Guc category.liquids = sivilar category.items = esyalar category.crafting = uretim -category.shooting = sikma +category.function = Function category.optional = Optional Enhancements setting.landscape.name = Lock Landscape setting.shadows.name = Shadows @@ -679,7 +720,6 @@ setting.linear.name = Linear Filtering setting.hints.name = Hints setting.flow.name = Display Resource Flow Rate[scarlet] (experimental) setting.buildautopause.name = Auto-Pause Building -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = Animated Water setting.animatedshields.name = Animated Shields setting.antialias.name = Antialias[lightgray] (requires restart)[] @@ -691,7 +731,7 @@ setting.touchscreen.name = Touchscreen Controls setting.fpscap.name = Max FPS setting.fpscap.none = Yok setting.fpscap.text = {0} FPS -setting.uiscale.name = UI Scaling[lightgray] (require restart)[] +setting.uiscale.name = UI Scaling[lightgray] (requires restart)[] setting.swapdiagonal.name = Always Diagonal Placement setting.difficulty.training = training setting.difficulty.easy = kolay @@ -713,7 +753,6 @@ setting.fullscreen.name = Tam ekran setting.borderlesswindow.name = Borderless Window[lightgray] (may require restart) setting.fps.name = FPS'i goster setting.smoothcamera.name = Smooth Camera -setting.blockselectkeys.name = Show Block Select Keys setting.vsync.name = VSync setting.pixelate.name = Pixelate [lightgray](may decrease performance) setting.minimap.name = Haritayi goster @@ -822,6 +861,7 @@ mode.custom = Custom Rules rules.infiniteresources = Infinite Resources rules.reactorexplosions = Reactor Explosions +rules.schematic = Schematics Allowed rules.wavetimer = Wave Timer rules.waves = Waves rules.attack = Attack Mode @@ -847,6 +887,7 @@ rules.title.unit = Units rules.title.experimental = Experimental rules.title.environment = Environment rules.lighting = Lighting +rules.enemyLights = Enemy Lights rules.fire = Fire rules.explosions = Block/Unit Explosion Damage rules.ambientlight = Ambient Light @@ -858,6 +899,7 @@ content.item.name = Esyalar content.liquid.name = Sivilar content.unit.name = Units content.block.name = Blocks + item.copper.name = Bakir item.lead.name = Kursun item.coal.name = Komur @@ -879,23 +921,6 @@ liquid.slag.name = Slag liquid.oil.name = Benzin liquid.cryofluid.name = kriyo sivisi -item.explosiveness = [lightgray]Patlayicilik: {0} -item.flammability = [lightgray]Yanbilirlik: {0} -item.radioactivity = [lightgray]Radyoaktivite: {0} - -unit.health = [lightgray]Can: {0} -unit.speed = [lightgray]hiz: {0} -unit.weapon = [lightgray]Weapon: {0} -unit.itemcapacity = [lightgray]Item Capacity: {0} -unit.minespeed = [lightgray]Mining Speed: {0}% -unit.minepower = [lightgray]Mining Power: {0} -unit.ability = [lightgray]Ability: {0} -unit.buildspeed = [lightgray]Building Speed: {0}% - -liquid.heatcapacity = [lightgray]isinma kapasitesi: {0} -liquid.viscosity = [lightgray]Yari sivilik: {0} -liquid.temperature = [lightgray]isi: {0} - unit.dagger.name = Dagger unit.mace.name = Mace unit.fortress.name = Fortress @@ -936,6 +961,7 @@ block.cliff.name = Cliff block.sand-boulder.name = Sand Boulder block.grass.name = Grass block.slag.name = Slag +block.space.name = Space block.salt.name = Salt block.salt-wall.name = Salt Wall block.pebbles.name = Pebbles @@ -981,6 +1007,7 @@ block.darksand-water.name = Dark Sand Water block.char.name = Char block.dacite.name = Dacite block.dacite-wall.name = Dacite Wall +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = Ice Snow block.stone-wall.name = Stone Wall block.ice-wall.name = Ice Wall @@ -1075,6 +1102,7 @@ block.power-source.name = sonsuz guc block.unloader.name = bekletici block.vault.name = kasa block.wave.name = Dalga +block.tsunami.name = Tsunami block.swarmer.name = Swarmer block.salvo.name = Salvo block.ripple.name = Ripple @@ -1114,6 +1142,7 @@ block.arc.name = Arc block.rtg-generator.name = RTG Generator block.spectre.name = Spectre block.meltdown.name = Meltdown +block.foreshadow.name = Foreshadow block.container.name = Container block.launch-pad.name = Launch Pad block.launch-pad-large.name = Large Launch Pad @@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor block.logic-display.name = Logic Display block.large-logic-display.name = Large Logic Display block.memory-cell.name = Memory Cell +block.memory-bank.name = Memory Bank team.blue.name = blue team.crux.name = red @@ -1302,4 +1332,4 @@ block.cyclone.description = A large rapid fire turret. block.spectre.description = A large turret which shoots two powerful bullets at once. block.meltdown.description = A large turret which shoots powerful long-range beams. block.repair-point.description = Continuously heals the closest damaged unit in its vicinity. -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. \ No newline at end of file +block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index 395e062453..9cbde0fad8 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -20,8 +20,8 @@ gameover = Kaybettin gameover.pvp = [accent] {0}[] Takımı kazandı! highscore = [accent]Yeni rekor! copied = Panoya Kopyalandı. -indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[]. -indev.notready = This part of the game isn't ready yet +indev.popup = [accent]v6[] şu anda [accent]beta aşamasındadır[].\n[lightgray]Bu demektir ki:[]\n[scarlet]- Mücadele modu tamamlanmamıştır[]\n- Müzik ve ses efektleri tamamlanmamıştır veya eksiktir\n- Gördüğün her şey değişime ya da kaldırılmaya açıktır.\n\nHataları ve çökmeleri [accent]Github[]'da bildir. +indev.notready = Oyunun bu kısmı henüz hazır değil. load.sound = Sesler load.map = Haritalar @@ -42,19 +42,20 @@ schematic = Şema schematic.add = Şemayı Kaydet... schematics = Şemalar schematic.replace = Aynı isimde bir şema zaten var. Üzerine yazılsın mı? -schematic.exists = A schematic by that name already exists. +schematic.exists = Aynı isimde bir şema zaten var. schematic.import = Şema İçeri Aktar... schematic.exportfile = Dışa Aktar schematic.importfile = İçe Aktar -schematic.browseworkshop = Workshop'u incele +schematic.browseworkshop = Atölyeyi incele schematic.copy = Panoya Kopyala schematic.copy.import = Panodan İçeri Aktar -schematic.shareworkshop = Workshop'ta Kaydet +schematic.shareworkshop = Atölyede Kaydet schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Şemayı döndür schematic.saved = Şema Kaydedildi. schematic.delete.confirm = Bu şema tamamen yok edilecek. schematic.rename = Şemayı yeniden adlandır schematic.info = {0}x{1}, {2} blok +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = Yenilen Dalgalar:[accent] {0} stat.enemiesDestroyed = Yok Edilen Düşmanlar:[accent] {0} @@ -62,10 +63,10 @@ stat.built = İnşa Edilen Yapılar:[accent] {0} stat.destroyed = Yok Edilen Yapılar:[accent] {0} stat.deconstructed = Yıkılan Yapılar:[accent] {0} stat.delivered = Gönderilen Kaynaklar: -stat.playtime = Time Played:[accent] {0} +stat.playtime = Oynama Süresi:[accent] {0} stat.rank = Rütbe: [accent]{0} -globalitems = [accent]Global Items +globalitems = [accent]Toplanan Kaynaklar map.delete = "[accent]{0}[]" haritasını silmek istediğine emin misin? level.highscore = Rekor: [accent]{0} level.select = Seviye Seçimi @@ -82,7 +83,7 @@ none = minimap = Harita position = Pozisyon close = Kapat -website = Website +website = Web sitesi quit = Çık save.quit = Kaydet & Çık maps = Haritalar @@ -100,22 +101,21 @@ done = Bitti feature.unsupported = Cihazınızda bu özellik desteklenmemektedir. mods.alphainfo = Modların alfa aşamasında olduğunu ve [scarlet]oldukça hatalı olabileceklerini[] unutmayın.\nBulduğunuz sorunları Mindustry GitHub'ı veya Discord'una bildirin. -mods.alpha = [accent](Alpha) mods = Modlar mods.none = [lightgray]Hiç mod bulunamadı! mods.guide = Mod Rehberi mods.report = Hata bildir mods.openfolder = Mod klasörünü aç -mods.reload = Reload -mods.reloadexit = The game will now exit, to reload mods. +mods.reload = Yeniden Yükle +mods.reloadexit = Modları yeniden yüklemek için oyun kapanacak. mod.display = [gray]Mod:[orange] {0} mod.enabled = [lightgray]Etkin mod.disabled = [scarlet]Devre Dışı mod.disable = Devre Dışı Bırak -mod.content = Content: +mod.content = İçerik: mod.delete.error = Mod silinemiyor. Dosya kullanımda olabilir. -mod.requiresversion = [scarlet]Gereken en düşük oun versiyonu: [accent]{0} -mod.outdated = [scarlet]Not compatible with V6 (no minGameVersion: 105) +mod.requiresversion = [scarlet]Gereken en düşük oyun versiyonu: [accent]{0} +mod.outdated = [scarlet]V6 ile uyumlu değil (minGameVersion: 105 yok) mod.missingdependencies = [scarlet]Bu modun çalışması için gereken modlar: {0} mod.erroredcontent = [scarlet]İçerik hatası. mod.errors = İçerik yüklenirken bir hata oluştu. @@ -125,9 +125,9 @@ mod.enable = Etkinleştir mod.requiresrestart = Oyun mod değişikliklerini uygulamak için kapatılacak. mod.reloadrequired = [scarlet]Yeniden Yükleme Gerekli mod.import = Mod İçeri Aktar -mod.import.file = Import File +mod.import.file = Dosya İçeri Aktar mod.import.github = GitHub Modu İçeri Aktar -mod.jarwarn = [scarlet]JAR mods are inherently unsafe.[]\nMake sure you're importing this mod from a trustworthy source! +mod.jarwarn = [scarlet]Jar modları doğası gereği güvenli değildir.[]\nBu modu güvenilir bir kaynaktan içeri aktardığına emin ol! mod.item.remove = Bu eşya[accent] '{0}'[] modunun bir parçası. Kaldırmak için modu silebilirsiniz. mod.remove.confirm = Bu mod silinecek. mod.author = [lightgray]Yayıncı:[] {0} @@ -139,8 +139,8 @@ mod.scripts.disable = Your device does not support mods with scripts. You must d about.button = Hakkında name = İsim: noname = Bir[accent] kullanıcı adı[] seçmelisin. -planetmap = Planet Map -launchcore = Launch Core +planetmap = Gezegen Haritası +launchcore = Kalkış filename = Dosya Adı: unlocked = Yeni içerik açıldı! completed = [accent]Tamamlandı @@ -148,11 +148,11 @@ techtree = Teknoloji Ağacı research.list = [lightgray]Araştırmalar: research = Araştır researched = [lightgray]{0} Araştırıldı. -research.progress = {0}% complete +research.progress = %{0} tamamlandı players = {0} çevrimiçi oyuncu players.single = {0} çevrimiçi oyuncu -players.search = search -players.notfound = [gray]no players found +players.search = ara +players.notfound = [gray]hiç oyuncu bulunamadı server.closing = [accent]Sunucu kapatılıyor... server.kicked.kick = Sunucudan atıldın! server.kicked.whitelist = Beyaz listede değilsin. @@ -185,9 +185,9 @@ server.refreshing = Sunucu yenileniyor hosts.none = [lightgray]Yerel oyun bulunamadı! host.invalid = [scarlet]Kurucuya bağlanılamıyor. -servers.local = Local Servers -servers.remote = Remote Servers -servers.global = Community Servers +servers.local = Yerel Sunucular +servers.remote = Uzak Sunucular +servers.global = Topuluk Sunucuları trace = Oyuncuyu Takip Et trace.playername = Oyuncu İsmi: [accent]{0} @@ -234,11 +234,11 @@ save.none = Kayıt bulunamadı! savefail = Oyun kaydedilemedi! save.delete.confirm = Bu kaydı silmek istediğine emin misin? save.delete = Sil -save.export = Kayıdı Dışa Aktar +save.export = Kaydı Dışa Aktar save.import.invalid = [accent]Bu kayıt geçersiz! save.import.fail = [crimson]Kayıt içe aktarılamadı: [accent]{0} save.export.fail = [crimson]Kayıt dışa aktarılamadı: [accent]{0} -save.import = Kayıdı İçe Aktar +save.import = Kaydı İçe Aktar save.newslot = İsmi kaydet: save.rename = Yeniden isimlendir save.rename.text = Yeni isim: @@ -249,7 +249,7 @@ save.corrupted = [accent]Kayıt dosyası bozuk veya geçersiz! empty = on = Aç off = Kapa -save.autosave = Otomatk kayıt: {0} +save.autosave = Otomatik kayıt: {0} save.map = Harita: {0} save.wave = Dalga {0} save.mode = Oyun modu: {0} @@ -269,27 +269,30 @@ copylink = Bağlantıyı Kopyala back = Geri data.export = Veriyi Dışa Aktar data.import = Veriyi İçe Aktar -data.openfolder = Open Data Folder +data.openfolder = Veri Klasörü Aç data.exported = Veri dışa aktarıldı. data.invalid = Bu oyun verisi geçerli değil. data.import.confirm = Dışarıdan içeri veri aktarmak şu anki verilerinizin [scarlet]tamamını[] silecektir.[accent]Bu işlem geri alınamaz![]\n\nVeri içeri aktarıldığında oyundan çıkacaksınız. quit.confirm = Çıkmak istediğinize emin misiniz? -quit.confirm.tutorial = Ne yaptığınıza emin misiniz?\nÖğreticiyi [accent] Ayarlar->Oyun->Öğreticiyi Yeniden Al'dan[] tekrar yapabilirsiniz. +quit.confirm.tutorial = Ne yaptığınıza emin misiniz?\nÖğreticiyi [accent] Ayarlar -> Oyun -> Öğreticiyi Yeniden Al[]'dan tekrar yapabilirsiniz. loading = [accent]Yükleniyor... reloading = [accent]Modlar Yeniden Yükleniyor... saving = [accent]Kayıt ediliyor... -respawn = [accent][[{0}][] to respawn in core -cancelbuilding = Planı temizlemek için [accent][[{0}][] -selectschematic = Seçmek ve kopyalamak için [accent][[{0}][] -pausebuilding = İnşaatı durdurmak için [accent][[{0}][] -resumebuilding = İnşaata devam etmek için [scarlet][[{0}][] +respawn = [accent][[{0}][] Çekirdekte yeniden doğ +cancelbuilding = [accent][[{0}][] Planı temizle +selectschematic = [accent][[{0}][] Seç ve kopyala +pausebuilding = [accent][[{0}][] İnşaatı durdur +resumebuilding = [scarlet][[{0}][] İnşaata devam et wave = [accent]Dalga {0} +wave.cap = [accent]Dalga {0}/{1} wave.waiting = [lightgray]{0} saniye içinde dalga başlayacak wave.waveInProgress = [lightgray]Dalga gerçekleşiyor waiting = [lightgray]Bekleniliyor... waiting.players = Oyuncular bekleniliyor... wave.enemies = [lightgray]{0} Tane Düşman Kaldı wave.enemy = [lightgray]{0} Tane Düşman Kaldı +wave.guardianwarn = [accent]{0}[] dalga sonra gardiyan yaklaşıyor. +wave.guardianwarn.one = [accent]{0}[] dalga sonra gardiyan yaklaşıyor. loadimage = Resim Aç saveimage = Resim Kaydet unknown = Bilinmeyen @@ -307,7 +310,7 @@ map.publish.confirm = Bu haritayı yayınlamak istediğinize emin misiniz?\n[lig workshop.menu = Bu eşya ile ne yapmak istediğinizi seçin. workshop.info = Eşya açıklaması changelog = Değişim Listesi (isteğe bağlı): -eula = Steam Kullanıvı Sözleşmesi +eula = Steam Kullanıcı Sözleşmesi missing = Bu eşya silinmiş veya taşınmış.\n[lightgray]Workshop listesinden kaldırıldı. publishing = [accent]Yayınlanıyor... publish.confirm = Bunu yayınlamak istediğinize emin misiniz?\n[lightgray]önce Atölye Sözleşmesine uyduğunuza emin olun, yoksa yapıtlarınız gözükmeyecektir! @@ -328,6 +331,7 @@ editor.generation = Oluşum: editor.ingame = Oyun içinde düzenle editor.publish.workshop = Atölyede Yayınla editor.newmap = Yeni Harita +editor.center = Ortala workshop = Atölye waves.title = Dalgalar waves.remove = Kaldır @@ -335,9 +339,9 @@ waves.never = waves.every = her waves.waves = dalga(lar) waves.perspawn = doğma noktası başına -waves.shields = shields/wave +waves.shields = kalkan/dalga waves.to = doğru -waves.guardian = Guardian +waves.guardian = Gardiyan waves.preview = Önizleme waves.edit = Düzenle... waves.copy = Panodan kopyala @@ -346,9 +350,9 @@ waves.invalid = Panoda geçersiz dalga sayısı var. waves.copied = Dalgalar kopyalandı. waves.none = Düşman bulunamadı.\nBoş dalga düzenlerin otomatik olarak varsayılan düzenle değiştirileceğini unutmayın -wavemode.counts = counts -wavemode.totals = totals -wavemode.health = health +wavemode.counts = miktarlar +wavemode.totals = toplamlar +wavemode.health = can editor.default = [lightgray] details = Detaylar... @@ -401,7 +405,7 @@ toolmode.replace = Değiştir toolmode.replace.description = Sadece katı blokların üzerinde çizer. toolmode.replaceall = Hepsini Değiştir toolmode.replaceall.description = Haritadaki bütün blokları değiştirir. -toolmode.orthogonal = Dik +toolmode.orthogonal = Çizgi toolmode.orthogonal.description = Sadece dik çizgiler çizer. toolmode.square = Kare toolmode.square.description = Kare fırça. @@ -415,8 +419,9 @@ toolmode.drawteams.description = Bloklar yerine takımları çizer.. filters.empty = [lightgray]Hiç filtre yok! Aşağıdaki butonla bir adet ekleyin. filter.distort = Çarpıt filter.noise = Gürültü -filter.enemyspawn = Enemy Spawn Select -filter.corespawn = Core Select +filter.enemyspawn = Düşman Doğma Alanı Seçimi +filter.spawnpath = Doğma Noktasına Yol +filter.corespawn = Çekirdek Seçimi filter.median = Medyan filter.oremedian = Maden Medyanı filter.blend = Geçiş @@ -436,10 +441,11 @@ filter.option.circle-scale = Daire Ölçek filter.option.octaves = Oktavlar filter.option.falloff = Düşüş filter.option.angle = Açı -filter.option.amount = Amount +filter.option.amount = Miktar filter.option.block = Blok filter.option.floor = Zemin filter.option.flooronto = Hedef Zemin +filter.option.target = Target filter.option.wall = Duvar filter.option.ore = Maden filter.option.floor2 = İkincil Duvar @@ -451,7 +457,7 @@ width = Eni: height = Boyu: menu = Menü play = Oyna -campaign = Başla +campaign = Mücadele load = Yükle save = Kaydet fps = FPS: {0} @@ -469,24 +475,18 @@ locked = Kilitli complete = [lightgray]Ulaş: requirement.wave = Bölge {1}'de Dalga {0} requirement.core = {0}`da Düşman Çekirdeği Yok Et -requirement.research = Research {0} -requirement.capture = Capture {0} -resume = Bölgeye Devam Et:\n[lightgray]{0} +requirement.research = {0} araştır +requirement.capture = {0} sektörünü ele geçir bestwave = [lightgray]En İyi Dalga: {0} -launch = < KALKIŞ > -launch.text = Launch -launch.title = Kalkış Başarılı -launch.next = [lightgray]Bir sonraki imkan {0}. dalgada olacak. -launch.unable2 = [scarlet]KALKIŞ mümkün değil.[] -launch.confirm = Bu işlem çekirdeğinizdeki bütün kaynakları yollayacak.\nBu üsse geri dönemeyeceksiniz. -launch.skip.confirm = Eğer şimdi geçerseniz, +launch.text = Kalkış +research.multiplayer = Sadece kurucu araştırma yapabilir. uncover = Aç configure = Ekipmanı Yapılandır -loadout = Loadout -resources = Resources +loadout = Yükleme +resources = Kaynaklar bannedblocks = Yasaklı Bloklar addall = Hepsini Ekle -launch.destination = Destination: {0} +launch.destination = Varış Yeri: {0} configure.invalid = Miktar 0 ve {0} arasında bir sayı olmalı. zone.unlocked = [lightgray]{0} kilidi açıldı. zone.requirement.complete = {0}. dalgaya ulaşıldı:\n{1} bölge şartları karşılandı. @@ -498,7 +498,7 @@ add = Ekle... boss.health = Boss Canı connectfail = [crimson]Bağlantı hatası:\n\n[accent]{0} -error.unreachable = Sunucuya ulaşılamıyor.\nAdrwsin doğru yazıldığına emin misiniz? +error.unreachable = Sunucuya ulaşılamıyor.\nAdresin doğru yazıldığına emin misiniz? error.invalidaddress = Geçersiz adres. error.timedout = Zaman aşımı!\nSunucunun port yönlendirmeyi ayarladığına ve adresin doğru olduğuna emin olun! error.mismatch = Paket hatası:\nSunucu ve alıcı arasında versiyon uyuşmazlığı ihtimali var.\nHem sizde hem de sunucuda Mindustry'nin en son sürümü yüklü olduğuna emin olun! @@ -508,43 +508,49 @@ error.io = Ağ I/O hatası. error.any = Bilinmeyen ağ hatası. error.bloom = Kamaşma başlatılamadı.\nCihazınız bu özelliği desteklemiyor olabilir. -weather.rain.name = Rain -weather.snow.name = Snow -weather.sandstorm.name = Sandstorm -weather.sporestorm.name = Sporestorm +weather.rain.name = Yağmur +weather.snow.name = Kar +weather.sandstorm.name = Kum Fırtınası +weather.sporestorm.name = Spor Yağmuru +weather.fog.name = Sis -sectors.unexplored = [lightgray]Unexplored -sectors.resources = Resources: -sectors.production = Production: -sectors.stored = Stored: -sectors.resume = Resume -sectors.launch = Launch -sectors.select = Select -sectors.nonelaunch = [lightgray]none (sun) +sectors.unexplored = [lightgray]Keşfedilmemiş +sectors.resources = Kaynaklar: +sectors.production = Üretim: +sectors.stored = Depolanan: +sectors.resume = Devam Et +sectors.launch = Kalkış +sectors.select = Seç +sectors.nonelaunch = [lightgray]yok (güneş) +sectors.rename = Sektörü Yeniden Adlandır +sector.missingresources = [scarlet]Yetersiz Çekirdek Kaynakları -sector.groundZero.name = Ground Zero -sector.craters.name = The Craters -sector.frozenForest.name = Frozen Forest -sector.ruinousShores.name = Ruinous Shores -sector.stainedMountains.name = Stained Mountains -sector.desolateRift.name = Desolate Rift -sector.nuclearComplex.name = Nuclear Production Complex -sector.overgrowth.name = Overgrowth -sector.tarFields.name = Tar Fields -sector.saltFlats.name = Salt Flats -sector.fungalPass.name = Fungal Pass +planet.serpulo.name = Serpulo +planet.sun.name = Güneş -sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. -sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. -sector.saltFlats.description = On the outskirts of the desert lie the Salt Flats. Few resources can be found in this location.\n\nThe enemy has erected a resource storage complex here. Eradicate their core. Leave nothing standing. -sector.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills. -sector.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology. -sector.stainedMountains.description = Further inland lie the mountains, yet untainted by spores.\nExtract the abundant titanium in this area. Learn how to use it.\n\nThe enemy presence is greater here. Do not give them time to send their strongest units. -sector.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build Titan units. Destroy it. Reclaim that which was lost. -sector.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible. -sector.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks. -sector.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers. -sector.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores. +sector.groundZero.name = Sıfır Noktası +sector.craters.name = Kraterler +sector.frozenForest.name = Donmuş Orman +sector.ruinousShores.name = Harap Kıyılar +sector.stainedMountains.name = Lekeli Dağlar +sector.desolateRift.name = Issız Aralık +sector.nuclearComplex.name = Kompleks Nükleer Üretimi +sector.overgrowth.name = Fazla Büyüme +sector.tarFields.name = Katran Alanları +sector.saltFlats.name = Tuz Düzlükleri +sector.fungalPass.name = Mantar Geçidi + +sector.groundZero.description = Yeniden başlamak için ideal bölge. Düşük düşman tehlikesi ve az miktarda kaynak mevcut. Mümkün olduğunca çok bakır ve kurşun topla.\nİlerle. +sector.frozenForest.description = Burada, dağlara yakın bölgelerde bile sporlar etrafa yayıldı. Dondurucu soğuk onları sonsuza dek durduramaz.\n\nEnerji kullanmaya başla. Termik jeneratörler inşa et. Tamircileri kullanmayı öğren. +sector.saltFlats.description = Çölün kenar kısımlarında tuz düzlükleri uzanır. Bu konumda az miktarda kaynak bulunur.\n\nDüşman burada kompleks bir kaynak depolama sistemi inşa etti. Çekirdeklerini yok et. Ayakta hiçbir şey bırakma. +sector.craters.description = Eski savaşların bir anıtı olan bu kratere su dolmuş. Alanı yeniden ele geçir. Kum topla ve metacam üret. Taret ve matkapları soğutmak için su pompala. +sector.ruinousShores.description = Yıkıntıların ardında bir kıyı var. Bir zamanlar bu konum bir dizi kıyı defansına ev sahipliği yapmış. Geriye pek bir şey kalmamış. Sadece en temel savunma yapıları zarar görmeden kaldı, onun dışındaki her şey hurdaya geri dönüştü.\nDışa doğru genişletmeye devam et. Teknolojiyi yeniden keşfet. +sector.stainedMountains.description = Daha uzaklarda dağlar uzanıyor, daha sporlar tarafından istilaya uğramamışlar.\nAlandaki serbest titanyumu çıkart ve kullanmasını öğren.\n\nDüşman varlığı burada daha fazla. Onların daha güçlü birimlerini göndermelerine izin verme. +sector.overgrowth.description = Bu alan aşırı büyümüştür, sporların kaynağına daha yakındır.\nDüşman burada bir merkez kurdu. Titan birlikleri inşa et. Onu yok et. Kaybedileni geri al. +sector.tarFields.description = Bir petrol üretim bölgesinin eteklerinde, dağların ve çölün arasındadır. Birkaç kullanılabilir katran rezervlerinden biri. \nTerk edilmiş olmasına rağmen, bu alan yakınlarda bazı tehlikeli düşman güçlerine sahip. Onları küçümseme.\n\n[lightgray]Mümkünse petrol üretme teknolojisini araştır. +sector.desolateRift.description = Aşırı tehlikeli bir bölge. Bol kaynaklar, ama az yer mevcut. Yüksek yıkım riski. Mümkün olduğunca çabuk ayrılmaya çalış. Düşman saldırıları arasındaki uzun mesafeye aldanma. +sector.nuclearComplex.description = Toryum üretimi ve işlenmesi için eski bir tesistir, harabeye dönüşmüştür.\n[lightgray]Toryumu ve onun birçok kullanımını araştır. \n\nDüşman burada çok sayıda mevcut ve sürekli saldırganları arıyorlar. +sector.fungalPass.description = Yüksek dağlar ve daha alçak, sporla dolu topraklar arasında bir geçiş alanıdır. Burada küçük bir düşman keşif üssü bulunuyor.\nOnu yok et.\nDagger ve Crawler birlikleri kullan. İki çekirdeği çıkar. settings.language = Dil settings.data = Oyun Verisi @@ -557,25 +563,31 @@ settings.sound = Ses settings.graphics = Grafikler settings.cleardata = Oyun Verisini Sil... settings.clear.confirm = Verileri silmek istediğinizden emin misiniz?\nBu işlemi geri alamazsınız! -settings.clearall.confirm = [scarlet]Uyarı![]\nBu işlem kayıtlar, haritalar açılan bloklar ve tuş atamaları dahil bütün verileri silecektir.\n"ok" tuşuna bastığınızda bütün verileriniz silinecek ve oyun kapanacaktır. -settings.clearsaves.confirm = Are you sure you want to clear all your saves? -settings.clearsaves = Clear Saves +settings.clearall.confirm = [scarlet]Uyarı![]\nBu işlem kayıtlar, haritalar açılan bloklar ve tuş atamaları dahil bütün verileri silecektir.\n"Tamam" tuşuna bastığınızda bütün verileriniz silinecek ve oyun kapanacaktır. +settings.clearsaves.confirm = Tüm kayıtlarınızı silmek istediğinizden emin misiniz? +settings.clearsaves = Kayıtları Sil +settings.clearresearch = Araştırma Verisini Sil +settings.clearresearch.confirm = Mücadele modundaki yaptığınız tüm araştırmaları sıfırlamak istediğinize emin misiniz? +settings.clearcampaignsaves = Mücadele Kayıt Verisini Sil +settings.clearcampaignsaves.confirm = Mücadele modundaki oynadığınız tüm sektörleri sıfırlamak istediğinize emin misiniz? paused = [accent] clear = Temizle banned = [scarlet]Yasaklı -unplaceable.sectorcaptured = [scarlet]Requires captured sector +unplaceable.sectorcaptured = [scarlet]Ele geçirilmiş sektör gerekir yes = Evet no = Hayır info.title = Bilgi error.title = [crimson]Bir hata oldu error.crashtitle = Bir hata oldu -unit.nobuild = [scarlet]Unit can't build +unit.nobuild = [scarlet]Birlik inşa edemiyor +lastaccessed = [lightgray]Son Erişme: {0} +block.unknown = [lightgray]??? + stat.input = Giriş stat.output = Çıkış stat.booster = Güçlendirici -stat.tiles = Required Tiles -stat.affinities = Affinities -block.unknown = [lightgray]??? +stat.tiles = Gereken Kare +stat.affinities = Yakınlıklar stat.powercapacity = Enerji Kapasitesi stat.powershot = Enerji/Atış stat.damage = Hasar @@ -585,15 +597,16 @@ stat.itemsmoved = Hareket Hızı stat.launchtime = Fırlatmalar Arasındaki Süre stat.shootrange = Menzil stat.size = Boyut -stat.displaysize = Display Size +stat.displaysize = Gösterim Boyutu stat.liquidcapacity = Sıvı Kapasitesi stat.powerrange = Enerji Menzili -stat.linkrange = Link Range -stat.instructions = Instructions -stat.powerconnections = Bağlantı sayısı +stat.linkrange = Bağlantı Menzili +stat.instructions = Talimatlar +stat.powerconnections = Bağlantı Sayısı stat.poweruse = Enerji Kullanımı stat.powerdamage = Enerji/Hasar stat.itemcapacity = Eşya Kapasitesi +stat.memorycapacity = Bellek Kapasitesi stat.basepowergeneration = Temel Enerji Üretimi stat.productiontime = Üretim Süresi stat.repairtime = Tamir Tamir Edilme Süresi @@ -605,49 +618,77 @@ stat.boosteffect = Hızlandırma Efekti stat.maxunits = Maksimum Aktif Birim stat.health = Can stat.buildtime = İnşaat Süresi -stat.maxconsecutive = Max Consecutive +stat.maxconsecutive = Art Arda En Fazla stat.buildcost = İnşaat Fiyatı stat.inaccuracy = İskalama Oranı stat.shots = Atışlar stat.reload = Atışlar/Sn stat.ammo = Mermi -stat.shieldhealth = Shield Health -stat.cooldowntime = Cooldown Time +stat.shieldhealth = Kalkan Canı +stat.cooldowntime = Soğuma Süresi +stat.explosiveness = Patlayıcılık +stat.basedeflectchance = Mermi Sekme Şansı +stat.lightningchance = Yıldırım Çarpma Şansı +stat.lightningdamage = Yıldırım Hasarı +stat.flammability = Yanıcılık +stat.radioactivity = Radyoaktivite +stat.heatcapacity = Isı Kapasitesi +stat.viscosity = Viskosite +stat.temperature = Sıcaklık +stat.speed = Hız +stat.buildspeed = İnşa Hızı +stat.minespeed = Kazı Hızı +stat.minetier = Kazı Seviyesi +stat.payloadcapacity = Yük Kapasitesi +stat.commandlimit = Komut Limiti +stat.abilities = Kabiliyetler + +ability.forcefield = Güç Kalkanı +ability.repairfield = Onarma Alanı +ability.statusfield = Hızlandırma Alanı +ability.unitspawn = {0} Birliği Fabrikası +ability.shieldregenfield = Kalkan Yenileme Alanı bar.drilltierreq = Daha İyi Matkap Gerekli -bar.noresources = Missing Resources -bar.corereq = Core Base Required +bar.noresources = Eksik Kaynaklar +bar.corereq = Çekirdek Tabanı Gerekli bar.drillspeed = Matkap Hızı: {0}/s -bar.pumpspeed = Pump Speed: {0}/s +bar.pumpspeed = Pompa Hızı: {0}/s bar.efficiency = Verim: {0}% bar.powerbalance = Enerji: {0}/sn bar.powerstored = Depolanan: {0}/{1} bar.poweramount = Enerji: {0} bar.poweroutput = Enerji Üretimi: {0} +bar.powerlines = Bağlantılar: {0}/{1} bar.items = Eşyalar: {0} bar.capacity = Kapasite: {0} bar.unitcap = {0} {1}/{2} -bar.limitreached = [scarlet] {0} / {1}[white] {2}\n[lightgray][[unit disabled] +bar.limitreached = [scarlet] {0} / {1}[white] {2}\n[lightgray][[birlik engellendi] bar.liquid = Sıvı bar.heat = Isı bar.power = Enerji -bar.progress = Build Progress +bar.progress = İnşa İlerlemesi bar.input = Girdi bar.output = Çıktı -bullet.damage = [stat]{0}[lightgray] hasar -bullet.splashdamage = [stat]{0}[lightgray] alan hasarı ~[stat] {1}[lightgray] kare +units.processorcontrol = [lightgray]İşlemci Kontrolünde + +bullet.damage = [stat]{0} [lightgray]hasar +bullet.splashdamage = [stat]{0} [lightgray]alan hasarı ~[stat] {1} [lightgray]kare bullet.incendiary = [stat]yakıcı bullet.homing = [stat]güdümlü bullet.shock = [stat]şoklayıcı bullet.frag = [stat]parça tesirli -bullet.knockback = [stat]{0}[lightgray] savurma +bullet.knockback = [stat]{0} [lightgray]savurma +bullet.pierce = [stat]{0}[lightgray]x delme +bullet.infinitepierce = [stat]delme bullet.freezing = [stat]dondurucu bullet.tarred = [stat]katranlı bullet.multiplier = [stat]{0}[lightgray]x mermi çarpanı bullet.reload = [stat]{0}[lightgray]x atış hızı -unit.blocks = bloklar +unit.blocks = blok +unit.blockssquared = blok² unit.powersecond = enerji birimi/saniye unit.liquidsecond = sıvı birimi/saniye unit.itemssecond = eşya/saniye @@ -655,12 +696,12 @@ unit.liquidunits = sıvı birimi unit.powerunits = enerji birimi unit.degrees = derece unit.seconds = saniye -unit.minutes = mins +unit.minutes = dakika unit.persecond = /sn -unit.perminute = /min +unit.perminute = /dk unit.timesspeed = x hız unit.percent = % -unit.shieldhealth = shield health +unit.shieldhealth = kalkan canı unit.items = eşya unit.thousands = k unit.millions = mil @@ -670,20 +711,19 @@ category.power = Enerji category.liquids = Sıvılar category.items = Eşyalar category.crafting = Üretim -category.shooting = Silahlar +category.function = Fonksiyon category.optional = İsteğe Bağlı Geliştirmeler setting.landscape.name = Yatayda sabitle setting.shadows.name = Gölgeler setting.blockreplace.name = Otomatik Blok önerileri setting.linear.name = Lineer Filtreleme setting.hints.name = İpuçları -setting.flow.name = Display Resource Flow Rate[scarlet] (experimental) +setting.flow.name = Kaynak Geçiş Hızını Göster[scarlet] (deneysel) setting.buildautopause.name = İnşa etmeyi otomatik olarak durdur -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = Animasyonlu Su setting.animatedshields.name = Animasyonlu Kalkanlar -setting.antialias.name = Düzgğnleştirme[lightgray] (yeniden açmak gerekebilir)[] -setting.playerindicators.name = Player Indicators +setting.antialias.name = Düzgünleştirme [lightgray](yeniden başlatma gerekebilir)[] +setting.playerindicators.name = Oyuncu Belirteçleri setting.indicators.name = Düşman/Müttefik Belirteçleri setting.autotarget.name = Otomatik Hedef Alma setting.keyboard.name = Fare+Klavye Kontrolleri @@ -691,7 +731,7 @@ setting.touchscreen.name = Dokunmatik Ekran Kontrolleri setting.fpscap.name = Maksimum FPS setting.fpscap.none = Limitsiz setting.fpscap.text = {0} FPS -setting.uiscale.name = UI Ölçeği[lightgray] (yeniden açmak gerekebilir)[] +setting.uiscale.name = Arayüz Ölçeği [lightgray](yeniden başlatma gerekebilir)[] setting.swapdiagonal.name = Her Zaman Çapraz Yerleştirme setting.difficulty.training = Eğitim setting.difficulty.easy = Kolay @@ -702,25 +742,24 @@ setting.difficulty.name = Zorluk: setting.screenshake.name = Ekranı Salla setting.effects.name = Efektleri Görüntüle setting.destroyedblocks.name = Kırılmış Blokları Göster -setting.blockstatus.name = Display Block Status +setting.blockstatus.name = Blok Durumunu Göster setting.conveyorpathfinding.name = Konveyör Yol Bulma setting.sensitivity.name = Kontrolcü Hassasiyeti setting.saveinterval.name = Kayıt Aralığı setting.seconds = {0} Saniye -setting.blockselecttimeout.name = Block Select Timeout +setting.blockselecttimeout.name = Blok Seçme Zaman Aşımı setting.milliseconds = {0} milisaniye setting.fullscreen.name = Tam Ekran -setting.borderlesswindow.name = Kenarsız Pencere[lightgray] (yeniden açmak gerekebilir) +setting.borderlesswindow.name = Kenarsız Pencere [lightgray](yeniden açmak gerekebilir) setting.fps.name = FPS Göster -setting.smoothcamera.name = Smooth Camera -setting.blockselectkeys.name = Blok seçim tüşlarını göster +setting.smoothcamera.name = Yumuşak Geçişli Kamera setting.vsync.name = VSync -setting.pixelate.name = Pixelleştir[lightgray] (animasyonları kapatır) +setting.pixelate.name = Pixelleştir [lightgray](animasyonları kapatır) setting.minimap.name = Haritayı Göster -setting.coreitems.name = Display Core Items (WIP) +setting.coreitems.name = Çekirdekteki Eşyaları Göster [lightgray](üzerinde çalışılıyor) setting.position.name = Oyuncu Noktasını Göster setting.musicvol.name = Müzik -setting.atmosphere.name = Show Planet Atmosphere +setting.atmosphere.name = Gezegen Atmosferini Göster setting.ambientvol.name = Çevresel Ses setting.mutemusic.name = Müziği Kapat setting.sfxvol.name = Oyun Sesi @@ -728,14 +767,14 @@ setting.mutesound.name = Sesi Kapat setting.crashreport.name = Anonim Çökme Raporları Gönder setting.savecreate.name = Otomatik Kayıt Oluştur setting.publichost.name = Halka Açık Oyunlar -setting.playerlimit.name = Player Limit +setting.playerlimit.name = Oyuncu Limiti setting.chatopacity.name = Mesajlaşma Opaklığı setting.lasersopacity.name = Enerji Lazeri Opaklığı -setting.bridgeopacity.name = Bridge Opacity +setting.bridgeopacity.name = Köprü Opaklığı setting.playerchat.name = Oyun-içi Konuşmayı Göster public.confirm = Oyununuzu halka açık yapmak ister misiniz?\n[accent]Oyunlarınıza herkes katılabilecektir.\n[lightgray]Bu seçenek daha sonra Ayarlar->Oyun->Halka Açık Oyunlar'dan değiştirilebilir. public.beta = Oyunun beta sürümlerinin halka açık lobiler yapamayacağını unutmayın. -uiscale.reset = UI ölçeği değiştirildi.\nBu ölçeği onaylamak için "OK" butonuna basın.\n[accent] {0}[] [scarlet]saniye içinde eski ayarlara geri dönülüp oyundan çıkılıyor…[] +uiscale.reset = Arayüz ölçeği değiştirildi.\nBu ölçeği onaylamak için "Tamam" butonuna basın.\n[accent] {0}[] [scarlet]saniye içinde eski ayarlara geri dönülüp oyundan çıkılıyor…[] uiscale.cancel = İptal Et ve Çık setting.bloom.name = Kamaşma keybind.title = Tuşları Yeniden Ata @@ -743,25 +782,25 @@ keybinds.mobile = [scarlet]Buradaki çoğu tuş ataması mobilde geçerli değil category.general.name = Genel category.view.name = Görünüm category.multiplayer.name = Çok Oyunculu -category.blocks.name = Block Select +category.blocks.name = Blok Seçimi command.attack = Saldır command.rally = Toplan command.retreat = Geri Çekil -command.idle = Idle +command.idle = Boşta placement.blockselectkeys = \n[lightgray]Tuş: [{0}, -keybind.respawn.name = Respawn -keybind.control.name = Control Unit +keybind.respawn.name = Yeniden Doğ +keybind.control.name = Birliği Kontrol Et keybind.clear_building.name = Binayı Temizle keybind.press = Bir tuşa basın... keybind.press.axis = Bir tuşa ya da yöne basın... keybind.screenshot.name = Harita Ekran Görüntüsü -keybind.toggle_power_lines.name = Enerji lazerlerini aç/kapa -keybind.toggle_block_status.name = Toggle Block Statuses +keybind.toggle_power_lines.name = Enerji Lazerlerini Aç/Kapa +keybind.toggle_block_status.name = Blok İstatistiklerini Aç/Kapa keybind.move_x.name = x Ekseninde Hareket keybind.move_y.name = y Ekseninde Hareket keybind.mouse_move.name = Fareyi Takip Et -keybind.pan.name = Pan View -keybind.boost.name = Boost +keybind.pan.name = Yatay Kaydırma Görünümü +keybind.boost.name = Yükselt keybind.schematic_select.name = Bölge Seç keybind.schematic_menu.name = Şema Menüsü keybind.schematic_flip_x.name = Şemayı X ekseninde Döndür @@ -788,15 +827,15 @@ keybind.diagonal_placement.name = Çapraz Yerleştirme keybind.pick.name = Blok Seç keybind.break_block.name = Blok Kır keybind.deselect.name = Seçimleri Kaldır -keybind.pickupCargo.name = Pickup Cargo -keybind.dropCargo.name = Drop Cargo -keybind.command.name = Command +keybind.pickupCargo.name = Kargoyu Al +keybind.dropCargo.name = Kargoyu Bırak +keybind.command.name = Komut keybind.shoot.name = Ateş Et keybind.zoom.name = Yakınlaştırma/Uzaklaştırma keybind.menu.name = Menü keybind.pause.name = Durdur keybind.pause_building.name = İnşaatı Duraklat/İnşaata Devam Et -keybind.minimap.name = Mini Harita +keybind.minimap.name = Harita keybind.chat.name = Konuş keybind.player_list.name = Oyuncu Listesi keybind.console.name = Konsol @@ -807,7 +846,7 @@ keybind.chat_history_prev.name = Sohbet geçmişi önceki keybind.chat_history_next.name = Sohbet geçmişi sonraki keybind.chat_scroll.name = Sohbet Kaydırma keybind.drop_unit.name = Birlik Düşürme -keybind.zoom_minimap.name = Mini Haritada Yakınlaştırma/Uzaklaştırma +keybind.zoom_minimap.name = Haritada Yakınlaştırma/Uzaklaştırma mode.help.title = Modların açıklamaları mode.survival.name = Hayatta Kalma mode.survival.description = Normal oyun oyun modu. Kaynak sınırlı ve dalgalar otomatik olarak gönderilir.\n[gray]Oynamak için haritada düşman doğma noktaları olması gerekir. @@ -822,42 +861,45 @@ mode.custom = Özel Kurallar rules.infiniteresources = Sınırsız Kaynaklar rules.reactorexplosions = Reaktör Patlamaları +rules.schematic = Schematics Allowed rules.wavetimer = Dalga Zamanlayıcısı rules.waves = Dalgalar rules.attack = Saldırı Modu -rules.buildai = AI Building +rules.buildai = Yapay Zeka İnşası rules.enemyCheat = Sonsuz AI (Kırmızı Takım) Kaynakları rules.blockhealthmultiplier = Blok Canı Çarpanı -rules.blockdamagemultiplier = Block Damage Multiplier +rules.blockdamagemultiplier = Blok Hasarı Çarpanı rules.unitbuildspeedmultiplier = Birim Üretim Hızı Çarpanı rules.unithealthmultiplier = Birim Canı Çarpanı rules.unitdamagemultiplier = Birim Hasarı Çapanı -rules.enemycorebuildradius = Düşman Çekirdeği İnşa Yasağı Yarıçapı:[lightgray] (kare) -rules.wavespacing = Dalga Aralığı:[lightgray] (sec) -rules.buildcostmultiplier = İnşa ücreti Çarpanı +rules.enemycorebuildradius = Düşman Çekirdeği İnşa Yasağı Yarıçapı: [lightgray](kare) +rules.wavespacing = Dalga Aralığı: [lightgray](sn) +rules.buildcostmultiplier = İnşa Ücreti Çarpanı rules.buildspeedmultiplier = İnşa Hızı Çarpanı -rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier +rules.deconstructrefundmultiplier = Yıkım İade Çarpanı rules.waitForWaveToEnd = Dalgalar Düşmanı Bekler -rules.dropzoneradius = İniş Noktası Yarıçapı:[lightgray] (kare) -rules.unitammo = Units Require Ammo +rules.dropzoneradius = İniş Noktası Yarıçapı: [lightgray](kare) +rules.unitammo = Birlikler Mermi Gerektiriyor rules.title.waves = Dalgalar rules.title.resourcesbuilding = Kaynaklar & İnşa rules.title.enemy = Düşmanlar rules.title.unit = Birlikler rules.title.experimental = Deneysel -rules.title.environment = Environment +rules.title.environment = Çevre rules.lighting = Işıklandırma -rules.fire = Fire -rules.explosions = Block/Unit Explosion Damage +rules.enemyLights = Enemy Lights +rules.fire = Ateş +rules.explosions = Blok/Birlik Patlama Hasarı rules.ambientlight = Ortam Işığı -rules.weather = Weather -rules.weather.frequency = Frequency: -rules.weather.duration = Duration: +rules.weather = Hava +rules.weather.frequency = Sıklık: +rules.weather.duration = Süreklilik: content.item.name = Eşyalar content.liquid.name = Sıvılar content.unit.name = Birimler content.block.name = Bloklar + item.copper.name = Bakır item.lead.name = Kurşun item.coal.name = Kömür @@ -879,23 +921,6 @@ liquid.slag.name = Cüruf liquid.oil.name = Petrol liquid.cryofluid.name = Kriyosıvı -item.explosiveness = [lightgray]Patlama: {0}% -item.flammability = [lightgray]Yanıcılık: {0}% -item.radioactivity = [lightgray]Radyoaktivite: {0}% - -unit.health = [lightgray]Can: {0} -unit.speed = [lightgray]Hız: {0} -unit.weapon = [lightgray]Weapon: {0} -unit.itemcapacity = [lightgray]Item Capacity: {0} -unit.minespeed = [lightgray]Mining Speed: {0}% -unit.minepower = [lightgray]Mining Power: {0} -unit.ability = [lightgray]Ability: {0} -unit.buildspeed = [lightgray]Building Speed: {0}% - -liquid.heatcapacity = [lightgray]Isı Kapasitesi: {0} -liquid.viscosity = [lightgray]Vizkosite: {0} -liquid.temperature = [lightgray]Sıcaklık: {0} - unit.dagger.name = Dagger unit.mace.name = Mace unit.fortress.name = Fortress @@ -932,26 +957,27 @@ unit.corvus.name = Corvus block.resupply-point.name = Resupply Point block.parallax.name = Parallax -block.cliff.name = Cliff -block.sand-boulder.name = Kum Kaya Parçaları +block.cliff.name = Uçurum +block.sand-boulder.name = Kumlu Kaya Parçaları block.grass.name = Çimen -block.slag.name = Slag +block.slag.name = Cüruf +block.space.name = Uzay block.salt.name = Tuz -block.salt-wall.name = Salt Wall +block.salt-wall.name = Tuz Duvar block.pebbles.name = Çakıl Taşları block.tendrils.name = Tendriller -block.sand-wall.name = Sand Wall +block.sand-wall.name = Kum Duvar block.spore-pine.name = Spor Çamı -block.spore-wall.name = Spore Wall -block.boulder.name = Boulder -block.snow-boulder.name = Snow Boulder +block.spore-wall.name = Spor Duvar +block.boulder.name = Kaya Parçaları +block.snow-boulder.name = Karlı Kaya PArçaları block.snow-pine.name = Karlı Çam block.shale.name = Şist block.shale-boulder.name = Şist Kayası block.moss.name = Yosun block.shrubs.name = Çalılık -block.spore-moss.name = Liken -block.shale-wall.name = Shale Wall +block.spore-moss.name = Spor Yosunu +block.shale-wall.name = Şist Duvar block.scrap-wall.name = Hurda Duvar block.scrap-wall-large.name = Büyük Hurda Duvar block.scrap-wall-huge.name = Dev Hurda Duvar @@ -979,17 +1005,18 @@ block.craters.name = Krater block.sand-water.name = Kumlu Su block.darksand-water.name = Kara Kumlu Su block.char.name = Kömür -block.dacite.name = Dacite -block.dacite-wall.name = Dacite Wall +block.dacite.name = Dakit +block.dacite-wall.name = Dakit Duvar +block.dacite-boulder.name = Dakit Kaya Parçaları block.ice-snow.name = Buzlu Kar -block.stone-wall.name = Stone Wall -block.ice-wall.name = Ice Wall -block.snow-wall.name = Snow Wall -block.dune-wall.name = Dune Wall +block.stone-wall.name = Taş Duvar +block.ice-wall.name = Buz Duvar +block.snow-wall.name = Kar Duvar +block.dune-wall.name = Kara Kum Duvar block.pine.name = Çam -block.dirt.name = Dirt -block.dirt-wall.name = Dirt Wall -block.mud.name = Mud +block.dirt.name = Toprak +block.dirt-wall.name = Toprak Duvar +block.mud.name = Çamur block.white-tree-dead.name = Ölü Beyaz Ağaç block.white-tree.name = Beyaz Ağaç block.spore-cluster.name = Spor Kümesi @@ -1005,15 +1032,15 @@ block.dark-panel-4.name = Kara Panel 4 block.dark-panel-5.name = Kara Panel 5 block.dark-panel-6.name = Kara Panel 6 block.dark-metal.name = Kara Metal -block.basalt.name = Basalt +block.basalt.name = Bazalt block.hotrock.name = Sıcak Kaya block.magmarock.name = Magma Kayası block.copper-wall.name = Bakır Duvar block.copper-wall-large.name = Büyük Bakır Duvar block.titanium-wall.name = Titanyum Duvar block.titanium-wall-large.name = Büyük Titanyum Duvar -block.plastanium-wall.name = Plastanium Wall -block.plastanium-wall-large.name = Large Plastanium Wall +block.plastanium-wall.name = Plastanyum Duvar +block.plastanium-wall-large.name = Büyük Plastanyum Duvar block.phase-wall.name = Faz Duvar block.phase-wall-large.name = Büyük Faz Duvar block.thorium-wall.name = Toryum Duvar @@ -1027,7 +1054,7 @@ block.hail.name = Hail block.lancer.name = Lancer block.conveyor.name = Konveyör block.titanium-conveyor.name = Titanyum Konveyör -block.plastanium-conveyor.name = Plastanium Conveyor +block.plastanium-conveyor.name = Plastanyum Konveyör block.armored-conveyor.name = Zırhlı Konveyör block.armored-conveyor.description = Materyalleri titanyum konveyörlerle aynı hızda taşır ama daha fazla zırha sahiptir. Diğer konveyörler dışında yan taraflardan materyal kabul etmez. block.junction.name = Kavşak @@ -1036,10 +1063,10 @@ block.distributor.name = Dağıtıcı block.sorter.name = Ayıklayıcı block.inverted-sorter.name = Ters Ayıklayıcı block.message.name = Mesaj -block.illuminator.name = Illuminator -block.illuminator.description = A small, compact, configurable light source. Requires power to function. -block.overflow-gate.name = Taşma Geçiti -block.underflow-gate.name = Underflow Gate +block.illuminator.name = Aydınlatıcı +block.illuminator.description = Küçük, kompakt, yapılandırılabilir bir ışık kaynağı. Çalışması için enerji gerekir. +block.overflow-gate.name = Taşma Geçidi +block.underflow-gate.name = Yana Taşma Geçidi block.silicon-smelter.name = Silikon Fırını block.phase-weaver.name = Faz Örücü block.pulverizer.name = Pulverizatör @@ -1052,7 +1079,7 @@ block.coal-centrifuge.name = Kömür Santrifüjü block.power-node.name = Enerji Noktası block.power-node-large.name = Büyük Enerji Noktası block.surge-tower.name = Akı Kulesi -block.diode.name = Battery Diode +block.diode.name = Batarya Diyotu block.battery.name = Batarya block.battery-large.name = Büyük Batarya block.combustion-generator.name = Termik Jeneratör @@ -1069,12 +1096,13 @@ block.mechanical-pump.name = Mekanik Pompa block.item-source.name = Sonsuz Eşya Kaynağı block.item-void.name = Eşya Yokedici block.liquid-source.name = Sonsuz Sıvı Kaynağı -block.liquid-void.name = Liquid Void +block.liquid-void.name = Sıvı Yokedici block.power-void.name = Enerji Yokedici block.power-source.name = Sonsuz Enerji Kaynağı block.unloader.name = Boşaltıcı block.vault.name = Depo block.wave.name = Wave +block.tsunami.name = Tsunami block.swarmer.name = Swarmer block.salvo.name = Salvo block.ripple.name = Ripple @@ -1088,13 +1116,13 @@ block.solar-panel-large.name = Büyük Güneş Paneli block.oil-extractor.name = Petrol Çıkarıcı block.repair-point.name = Tamir Noktası block.pulse-conduit.name = Dalga Borusu -block.plated-conduit.name = Plated Conduit +block.plated-conduit.name = Kaplı Boru block.phase-conduit.name = Faz Borusu block.liquid-router.name = Sıvı Yönlendiricisi block.liquid-tank.name = Sıvı Tankı block.liquid-junction.name = Sıvı Kavşağı block.bridge-conduit.name = Köprülü Boru -block.rotary-pump.name = Rotary Pompa +block.rotary-pump.name = Döner Pompa block.thorium-reactor.name = Toryum Reaktörü block.mass-driver.name = Kütle Sürücüsü block.blast-drill.name = Hava Patlamalı Matkap @@ -1108,49 +1136,51 @@ block.surge-wall-large.name = Büyük Akı Duvarı block.cyclone.name = Cyclone block.fuse.name = Fuse block.shock-mine.name = Şok Mayını -block.overdrive-projector.name = Aşırı Yükleme Projektörü +block.overdrive-projector.name = Hızlandırma Projektörü block.force-projector.name = Kalkan Projektörü block.arc.name = Arc block.rtg-generator.name = RTG Jeneratörü block.spectre.name = Spectre block.meltdown.name = Meltdown +block.foreshadow.name = Foreshadow block.container.name = Konteyner block.launch-pad.name = Kalkış Pisti block.launch-pad-large.name = Büyük Kalkış Pisti block.segment.name = Segment -block.command-center.name = Command Center -block.ground-factory.name = Ground Factory -block.air-factory.name = Air Factory -block.naval-factory.name = Naval Factory -block.additive-reconstructor.name = Additive Reconstructor -block.multiplicative-reconstructor.name = Multiplicative Reconstructor -block.exponential-reconstructor.name = Exponential Reconstructor -block.tetrative-reconstructor.name = Tetrative Reconstructor -block.payload-conveyor.name = Mass Conveyor -block.payload-router.name = Payload Router -block.disassembler.name = Disassembler -block.silicon-crucible.name = Silicon Crucible -block.overdrive-dome.name = Overdrive Dome +block.command-center.name = Komuta Merkezi +block.ground-factory.name = Yer Birimi Fabrikası +block.air-factory.name = Hava Birimi Fabrikası +block.naval-factory.name = Deniz Birimi Fabrikası +block.additive-reconstructor.name = Eklemeli Yeniden Yapılandırıcı +block.multiplicative-reconstructor.name = Çarpmalı Yeniden Yapılandırıcı +block.exponential-reconstructor.name = Üstel Yeniden Yapılandırıcı +block.tetrative-reconstructor.name = Dörtlü Yeniden Yapılandırıcı +block.payload-conveyor.name = Yük Konveyörü +block.payload-router.name = Yük Yönlendirici +block.disassembler.name = Sökücü +block.silicon-crucible.name = Büyük Silikon Fırını +block.overdrive-dome.name = Hızlandırma Kubbesi -block.switch.name = Switch -block.micro-processor.name = Micro Processor -block.logic-processor.name = Logic Processor -block.hyper-processor.name = Hyper Processor -block.logic-display.name = Logic Display -block.large-logic-display.name = Large Logic Display -block.memory-cell.name = Memory Cell +block.switch.name = Düğme +block.micro-processor.name = Mikro İşlemci +block.logic-processor.name = İşlemci +block.hyper-processor.name = Hiper İşlemci +block.logic-display.name = Ekran +block.large-logic-display.name = Büyük Ekran +block.memory-cell.name = Bellek Hücresi +block.memory-bank.name = Bellek Bankası team.blue.name = mavi -team.crux.name = kırmızı -team.sharded.name = turuncu +team.crux.name = öz +team.sharded.name = parçalanmış team.orange.name = turuncu -team.derelict.name = derelict +team.derelict.name = sahipsiz team.green.name = yeşil team.purple.name = mor tutorial.next = [lightgray] tutorial.intro = [scarlet]Mindustry öğreticisine hoş geldiniz.[]\n[accent]Bakır kazarak[] başlayın. Bunu yapmak için merkezinize yakın bir bakır madenine dokunun.\n\n[accent]{0}/{1} bakır -tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers [] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper +tutorial.intro.mobile = [scarlet]Mindustry öğreticisine hoş geldiniz.[]\nHareket etmek için ekranı kaydırın.\nYakınlaştırmak ve uzaklaştırmak için [accent]iki parmakla kıstırın[].\n[accent]Bakır kazarak[] başlayın. Bunu yapmak için merkezinize yakın bir bakır madenine dokunun.\n\n[accent]{0}/{1} bakır tutorial.drill = Manuel olarak kazmak verimsizdir.\n[accent]Matkaplar []otomatikman kazabilir.\nSağ alttaki matkap sekmesine tıklayınız.\n[accent]Mekanik matkabı[] seçiniz. Tıklayarak bir bakır madenine yerleştirin.\n Yapımı durdurmak için [accent]sağ tıklayın[] ve yakınlaştırmak ve uzaklaştırmak için [accent]CTRL basılı tutarak tekerleği kaydırın[]. tutorial.drill.mobile = Manuel olarak kazmak verimsizdir.\n[accent]Matkaplar []otomatik olarak kazabilir.\nSağ alttaki matkap sekmesine dokunun.\n[accent]Mekanik matkabı[] seçin. \nDokunarak bir bakır madenine yerleştirin, sonra seçiminizi onaylamak için alttaki [accent] tik düğmesine[] basın.\nYerleştirmenizi iptal etmek için [accent] X butonuna[] basın. tutorial.blockinfo = Her bloğun farklı istatistikleri vardır. Her matkap sadece belirli madenleri kazabilir.\nBir bloğun bilgi ve istatistiklerine bakmak için,[accent] yapım menüsünde seçerken "?" tuşuna dokunun.[]\n\n[accent]Şimdi mekanik matkabın istatistiklerine erişin.[] @@ -1213,13 +1243,13 @@ block.power-source.description = Sonsuz enerji verir. Sadece Yaratıcı Modda. block.item-source.description = Seçilen eşyadan sonsuz verir. Sadece Yaratıcı Modda. block.item-void.description = Verilen eşyaları yok eder. Sadece Yaratıcı Modda. block.liquid-source.description = Seçilen sıvıyı sonsuz verir. Sadece Yaratıcı Modda. -block.liquid-void.description = Removes any liquids. Sandbox only. +block.liquid-void.description = Verilen sıvıları yok eder. Sadece Yaratıcı Modda. block.copper-wall.description = Ucuz bir savunma bloğu.\nİlk birkaç dalgada merkezi ve silahları korumak için kullanışlıdır. block.copper-wall-large.description = Ucuz bir savunma bloğu.\nİlk birkaç dalgada merkezi ve taretleri korumak için kullanışlıdır.\nBirçok blok alan kaplar. block.titanium-wall.description = Orta derecede güçlü savunma bloğu.\nDüşmanlardan orta derecede koruma sağlar. block.titanium-wall-large.description = Orta derecede güçlü savunma bloğu.\nDüşmanlardan orta derecede koruma sağlar.\nBirçok blok alan kaplar. -block.plastanium-wall.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections. -block.plastanium-wall-large.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.\nSpans multiple tiles. +block.plastanium-wall.description = Elektrik arklarını emen ve otomatik enerji noktası bağlantılarını engelleyen özel bir duvar türü. +block.plastanium-wall-large.description = Elektrik arklarını emen ve otomatik enerji noktası bağlantılarını engelleyen özel bir duvar türü.\nBirçok blok alan kaplar. block.thorium-wall.description = Güçlü bir savunma bloğu.\nDüşmanlardan iyi korunma sağlar. block.thorium-wall-large.description = Güçlü bir savunma bloğu.\nDüşmanlardan iyi korunma sağlar.\nBirçok blok alan kaplar. block.phase-wall.description = Özel faz örgüsü bazlı yansıtıcı materyal ile kaplanmış bir duvar. Çoğu mermi çarpma anında saptırır. @@ -1235,23 +1265,23 @@ block.force-projector.description = Kendi etrafında altıgen güç alanı oluş block.shock-mine.description = Mayına basan düşmanlara hasar verir. Düşmana neredeyse görünmezdir. block.conveyor.description = Temel materyal taşıma bloğu. Materyalleri ileri taşır ve onları diğer bloklara otomatik olarak yerleştirir. Çevrilebilir. block.titanium-conveyor.description = Gelişmiş materyal taşıma bloğu. Materyalleri standart konveyörlerden daha hızlı taşır. -block.plastanium-conveyor.description = Moves items in batches.\nAccepts items at the back, and unloads them in three directions at the front. +block.plastanium-conveyor.description = Materyalleri gruplar halinde taşır.\nArkadan eşyaları kabul eder ve öndeki üç yöne boşaltır. block.junction.description = Çakışan iki konveyör hattı arasında bir köprü görevi görür. İki farklı konveyörğn farklı hedeflere farklı materyalleri taşıdığı durumlarda kullanışlıdır. block.bridge-conveyor.description = Gelişmiş materyal taşıma bloğu. Materyalleri her türlü arazi veya binanın üzerinden üç bloğa kadar uzağa taşıyabilir. block.phase-conveyor.description = Gelişmiş materyal taşıma bloğu. Materyalleri kendisine bağlı bir başka faz konveyörüne ışınlamak için enerji kullanır. block.sorter.description = Materyalleri ayıklar. Eğer materyal seçilen ile eşleşiyorsa geçmesine izin verilir. Yoksa materyal sağa ya da sola atılır. -block.inverted-sorter.description = Processes items like a standard sorter, but outputs selected items to the sides instead. +block.inverted-sorter.description = Materyalleri sıradan bir ayıklayıcı gibi işler, ancak seçili öğeleri önden değil yanlardan geçirir. block.router.description = Materyalleri bir yönden alıp diğer üç yöne eşit olarak dağıtır. Materyalleri bir kaynaktan birden fazla hedefe iletmek için kullanılır.\n\n[scarlet]Asla üretim yapan binaların dibine yerleştirmeyin, yoksa istenmeyen materyaller tarafından tıkanabilir.[] block.distributor.description = Gelişmiş bir yönlendirici. Materyalleri yedi farklı yöne dağıtabilir. block.overflow-gate.description = Ayırıcı ve yönlendiricinin bir karışımı. Materyalleri sadece ön kısım kapalı olduğunda sağa ve sola atar. -block.underflow-gate.description = The opposite of an overflow gate. Outputs to the front if the left and right paths are blocked. +block.underflow-gate.description = Taşma geçidinin zıttıdır. Sol ve sağ taraf kapalıysa materyalleri ön tarafa atar. block.mass-driver.description = En gelişmiş materyal taşıma bloğu. bir miktar materyalı alır ve onları uzak mesafedeki bir başka kütle sürücüsüne ateşler. Çalışması için enerji gerekir. block.mechanical-pump.description = Hiç enerji harcamayan, düşük çıktılı, ucuz bir pompa. block.rotary-pump.description = Daha gelişmiş bir pompa. Daha fazla sıvı depolar ama çalışması için enerji gerekir. block.thermal-pump.description = En iyi pompa. block.conduit.description = Temel sıvı taşıma bloğu. Sıvıları ileri taşır. Pompalar ve diğer borularla birlikte kullanılır. block.pulse-conduit.description = Gelişmiş bir sıvı taşıma bloğu. Sıvıları normal borulardan daha hızlı taşır ve onlardan daha fazla sıvı alır. -block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less. +block.plated-conduit.description = Sıvıları dalga borusuyla aynı güçte taşır ancak daha fazla zırha sahiptir. Borular dışında başka bir şekilde yandan sıvı kabul etmez.\nDaha az sızıntı yapar. block.liquid-router.description = Sıvıları bir yönden alıp diğer üç yöne eşit olarak dağıtır. Ayrıca kendisi de bir miktar sıvı depolayabilir. Sıvıları bir kaynaktan birden fazla hedefe iletmek için kullanılır. block.liquid-tank.description = Çok miktarda sıvıyı depolar. İhtiyaçları devamlı olmayan sıvıları yedek olarak saklamakta ya da önemli blokların devamlı olarak soğutulmasında kullanılabilir. block.liquid-junction.description = Çakışan iki boru hattı arasında bir köprü görevi görür. İki farklı borunun farklı hedeflere farklı sıvıları taşıdığı durumlarda kullanışlıdır. @@ -1260,7 +1290,7 @@ block.phase-conduit.description = Gelişmiş sıvı taşıma bloğu. Sıvıları block.power-node.description = Bağlı düğümlere enerji sağlar. Ayrıca dibindeki bloklardan da enerji alıp onlara enerji verebilir. block.power-node-large.description = Daha fazla menzil ve bağlantıya sahip daha gelişmiş bir güç düğümü block.surge-tower.description = Daha az bağlantı sayısına sahip oldukça uzun menzilli bir güç düğümü. -block.diode.description = Battery power can flow through this block in only one direction, but only if the other side has less power stored. +block.diode.description = Pil gücü, bu bloktan yalnızca diğer tarafta daha az güç depolandığında sadece tek bir yöne akabilir. block.battery.description = Enerji fazlasını yedek olarak saklar. Enerji açığında sakladığı enerjiyi salar. block.battery-large.description = Sıradan bataryadan çok daha fazla enerji depolar. block.combustion-generator.description = Kömür gibi yanıcı materyalleri yakarak enerji üretir. @@ -1302,4 +1332,4 @@ block.cyclone.description = Büyük bir anti hava ve anti kara tareti. Yakının block.spectre.description = Dev bir çift namlulu top. Hava ve kara birimlerine iri, zırh delici mermiler atar. block.meltdown.description = Dev bir lazer topu. Yüklenip yakındaki düşmanlara uzun süreli lazer ışınları yollar. Çalışması için soğutucu gerekir. block.repair-point.description = Kendisine en yakın hasarlı birimi tamir eder. -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. \ No newline at end of file +block.segment.description = Gelen mermilere zarar verir ve onları yok eder. Lazer mermilere etki etmez. diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index dfc4bae48b..e633dc8565 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -20,7 +20,7 @@ gameover = Гра завершена gameover.pvp = [accent]{0}[] команда перемогла! highscore = [accent]Новий рекорд! copied = Скопійовано. -indev.popup = Наразі [accent]6.0[] знаходиться у стадії [accent]альфа[].\n[lightgray]Це означає наступне:[]\n- Не вистачає наповнення гри;\n- Більшість [scarlet]ШІ бойових одиниць[] не працює належним чином;\n- Багато одиниць [scarlet]відсутні[] або незавершені;\n- Кампанія повністю не є завершеною;\n- Усе, що ви бачите, може змінитися або видалитися.\n\nПовідомляйте про вади або збої на [accent]Github[], а про помилки в перекладі в Discord. +indev.popup = Наразі [accent]6.0[] знаходиться у стадії [accent]бета-тестування[].\n[lightgray]Це означає наступне:[]\n- Не вистачає наповнення кампанії;\n- Звуки і музика відсутні або незавершені;\n- Кампанія повністю не є завершеною;\n- Усе, що ви бачите, може змінитися або видалитися.\n\nПовідомляйте про вади або збої на [accent]Github[], а про помилки в перекладі в Discord. indev.notready = Ця частина гри ще не готова. load.sound = Звуки @@ -101,7 +101,6 @@ done = Зроблено feature.unsupported = Ваш пристрій не підтримує цю функцію mods.alphainfo = Майте на увазі, що модифікації перебувають в альфі, і [scarlet]можуть бути дуже несправними[].\nПовідомте про будь-які проблеми, які ви знайдете до Mindustry Github або Discord. -mods.alpha = [accent](Альфа) mods = Модифікації mods.none = [lightgray]Модифікацій не знайдено! mods.guide = Посібник із модифікацій @@ -285,12 +284,15 @@ selectschematic = [accent][[{0}][], щоби вибрати та скопіюв pausebuilding = [accent][[{0}][], щоби призупинити будування resumebuilding = [scarlet][[{0}][], щоби продовжити будування wave = [accent]Хвиля {0} +wave.cap = [accent]Хвиля {0}/{1} wave.waiting = [lightgray]Наступна хвиля\nчерез {0} wave.waveInProgress = [lightgray]Хвиля триває waiting = [lightgray]Очікування… waiting.players = Очікування гравців… wave.enemies = Залишилося\n[lightgray]{0} противник. wave.enemy = Залишився\n[lightgray]{0} противник +wave.guardianwarn = Хвиль до появи Вартового: [accent]{0}[] . +wave.guardianwarn.one = Вартовий з’явиться через [accent]{0}[] хвилю. loadimage = Завантажити зображення saveimage = Зберегти зображення unknown = Невідомо @@ -329,6 +331,7 @@ editor.generation = Генерація: editor.ingame = Редагувати в грі editor.publish.workshop = Опублікувати в Майстерні Steam editor.newmap = Нова мапа +editor.center = Центрувати workshop = Майстерня waves.title = Хвилі waves.remove = Видалити @@ -417,6 +420,7 @@ filters.empty = [lightgray]Немає фільтрів! Додайте хоча filter.distort = Спотворення filter.noise = Шум filter.enemyspawn = Вибір точки появи противників +filter.spawnpath = Path To Spawn filter.corespawn = Вибір ядра filter.median = Медіана filter.oremedian = Рудна медіана @@ -441,6 +445,7 @@ filter.option.amount = Кількість filter.option.block = Блок filter.option.floor = Поверхня filter.option.flooronto = Цільова поверхня +filter.option.target = Target filter.option.wall = Стіна filter.option.ore = Руда filter.option.floor2 = Друга поверхня @@ -474,7 +479,7 @@ requirement.research = Research {0} requirement.capture = Capture {0} bestwave = [lightgray]Найкраща хвиля: {0} launch.text = Запуск -campaign.multiplayer = Коли ви граєте з кимось в кампанії, то ви можете дослідити лише використовуючи предмети з [accent]ваших[] секторів, [scarlet]гн[] з сектора власника, на якому ви перебуваєте прямо зараз.\n\nЗадля отримання предметів у [accent]своїх[] секторах в багатокористувацькій грі використайте [accent]Стартовий майданчик[]. +research.multiplayer = Лише власник сервера має змогу досліджувати предмети. uncover = Розкрити configure = Налаштувати вивантаження loadout = Вивантаження @@ -507,15 +512,21 @@ weather.rain.name = Дощ weather.snow.name = Сніг weather.sandstorm.name = Піщана буря weather.sporestorm.name = Спорова буря +weather.fog.name = Fog sectors.unexplored = [lightgray]Не досліджено sectors.resources = Ресурси: sectors.production = Виробництво: sectors.stored = Зберігає: sectors.resume = Продовжити -sectors.launch = Запуск +sectors.launch = Запустити sectors.select = Вибрати sectors.nonelaunch = [lightgray]нічого (сонце) +sectors.rename = Перейменування сектора +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Cерпуло +planet.sun.name = Сонце sector.groundZero.name = Відправний пункт sector.craters.name = Кратери @@ -555,6 +566,10 @@ settings.clear.confirm = Ви дійсно хочете очистити ці д settings.clearall.confirm = [scarlet]УВАГА![]\nЦе очистить усі дані, включно із збереженнями, мапами, розблокованим та налаштуваннями керування.\nПісля натискання «Гаразд» гра видалить усі дані та автоматично закриється. settings.clearsaves.confirm = Ви справді хочете видалити всі ваші збереження? settings.clearsaves = Очистити збереження +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent]< Пауза> clear = Очистити banned = [scarlet]Заблоковано @@ -565,12 +580,14 @@ info.title = Інформація error.title = [crimson]Виникла помилка error.crashtitle = Виникла помилка unit.nobuild = [scarlet]Ця одиниця не може будувати +lastaccessed = [lightgray]Остання зміна від {0} +block.unknown = [lightgray]??? + stat.input = Ввід stat.output = Вивід stat.booster = Прискорювач stat.tiles = Необхідні плитки stat.affinities = Збільшення ефективності -block.unknown = [lightgray]??? stat.powercapacity = Місткість енергії stat.powershot = Енергія за постріл stat.damage = Шкода @@ -609,6 +626,28 @@ stat.reload = Постріли/секунду stat.ammo = Боєприпаси stat.shieldhealth = Міцність щита stat.cooldowntime = Тривалість охолодження +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = Потребується кращий бур bar.noresources = Бракує ресурсів @@ -620,6 +659,7 @@ bar.powerbalance = Енергія: {0} за с. bar.powerstored = Зберігає: {0}/{1} bar.poweramount = Енергія: {0} bar.poweroutput = Вихідна енергія: {0} +bar.powerlines = З’єднань: {0}/{1} bar.items = Предмети: {0} bar.capacity = Місткість: {0} bar.unitcap = {0} {1}/{2} @@ -631,6 +671,8 @@ bar.progress = Хід будування bar.input = Ввід bar.output = Вивід +units.processorcontrol = [lightgray]Керується процесором + bullet.damage = [stat]{0}[lightgray] шкода bullet.splashdamage = [stat]{0}[lightgray] шкода по ділянці ~[stat] {1}[lightgray] плиток bullet.incendiary = [stat]запальний @@ -638,12 +680,15 @@ bullet.homing = [stat]самонаведення bullet.shock = [stat]шок bullet.frag = [stat]шкода по ділянці bullet.knockback = [stat]{0}[lightgray] відкидання +bullet.pierce = [stat]{0}[lightgray]x пробиття +bullet.infinitepierce = [stat]пробиття bullet.freezing = [stat]заморожування bullet.tarred = [stat]дьогтьовий bullet.multiplier = [stat]{0}[lightgray]x патронів bullet.reload = [stat]{0}[lightgray]x швидкість перезаряджання unit.blocks = блоки +unit.blockssquared = blocks² unit.powersecond = одиниць енергії за секунду unit.liquidsecond = одиниць рідини за секунду unit.itemssecond = предметів за секунду @@ -666,7 +711,7 @@ category.power = Енергія category.liquids = Рідини category.items = Предмети category.crafting = Виробництво -category.shooting = Стрільба +category.function = Function category.optional = Додаткові поліпшення setting.landscape.name = Тільки альбомний (горизонтальний) режим setting.shadows.name = Тіні @@ -675,7 +720,6 @@ setting.linear.name = Лінійна фільтрація setting.hints.name = Підказки setting.flow.name = Показувати темп швидкості ресурсів setting.buildautopause.name = Автоматичне призупинення будування -setting.mapcenter.name = Автоматичне центрування мапи на гравця setting.animatedwater.name = Анімаційні рідини setting.animatedshields.name = Анімаційні щити setting.antialias.name = Згладжування[lightgray] (потребує перезапуску)[] @@ -709,7 +753,6 @@ setting.fullscreen.name = Повноекранний режим setting.borderlesswindow.name = Вікно без полів[lightgray] (може потребувати перезапуску) setting.fps.name = Показувати FPS і затримку до сервера setting.smoothcamera.name = Гладка камера -setting.blockselectkeys.name = Показувати клавіші вибору блока setting.vsync.name = Вертикальна синхронізація setting.pixelate.name = Пікселізація setting.minimap.name = Показувати мінімапу @@ -844,6 +887,7 @@ rules.title.unit = Бойові одиниці rules.title.experimental = Експериментальне rules.title.environment = Середовище rules.lighting = Світлотінь +rules.enemyLights = Ворожі вогні rules.fire = Вогонь rules.explosions = Шкода від вибухів блоків і одиниць rules.ambientlight = Навколишнє світло @@ -855,6 +899,7 @@ content.item.name = Предмети content.liquid.name = Рідини content.unit.name = Бойові одиниці content.block.name = Блоки + item.copper.name = Мідь item.lead.name = Свинець item.coal.name = Вугілля @@ -876,23 +921,6 @@ liquid.slag.name = Шлак liquid.oil.name = Нафта liquid.cryofluid.name = Кріогенна рідина -item.explosiveness = [lightgray]Вибухонебезпечність: {0} % -item.flammability = [lightgray]Вогненебезпечність: {0} % -item.radioactivity = [lightgray]Радіоактивність: {0} % - -unit.health = [lightgray]Здоров’я: {0} -unit.speed = [lightgray]Швидкість: {0} -unit.weapon = [lightgray]Зброя: {0} -unit.itemcapacity = [lightgray]Місткість елементів: {0} -unit.minespeed = [lightgray]Швидкість видобутку: {0} % -unit.minepower = [lightgray]Потужність видобутку: {0} -unit.ability = [lightgray]Здібність: {0} -unit.buildspeed = [lightgray]Швидкість будування: {0} % - -liquid.heatcapacity = [lightgray]Теплоємність: {0} -liquid.viscosity = [lightgray]В’язкість: {0} -liquid.temperature = [lightgray]Температура: {0} - unit.dagger.name = Кинджал unit.mace.name = Булава unit.fortress.name = Фортеця @@ -933,6 +961,7 @@ block.cliff.name = Скеля block.sand-boulder.name = Пісочний валун block.grass.name = Трава block.slag.name = Шлак +block.space.name = Космос block.salt.name = Сіль block.salt-wall.name = Соляна стіна block.pebbles.name = Галька @@ -978,6 +1007,7 @@ block.darksand-water.name = Темний пісок із водою block.char.name = Випалена земля block.dacite.name = Дацит block.dacite-wall.name = Дацитова стіна +block.dacite-boulder.name = Дацитовий валун block.ice-snow.name = Крижаний сніг block.stone-wall.name = Кам’яна стіна block.ice-wall.name = Крижана стіна @@ -1072,6 +1102,7 @@ block.power-source.name = Нескінченне джерело енергії block.unloader.name = Розвантажувач block.vault.name = Вмістилище block.wave.name = Хвиля +block.tsunami.name = Цунамі block.swarmer.name = Роєвик block.salvo.name = Залп block.ripple.name = Ряб @@ -1111,6 +1142,7 @@ block.arc.name = Дуга block.rtg-generator.name = Радіоізотопний термоелектричний генератор block.spectre.name = Спектр block.meltdown.name = Розплавлювач +block.foreshadow.name = Передвісник block.container.name = Сховище block.launch-pad.name = Стартовий майданчик block.launch-pad-large.name = Великий стартовий майданчик @@ -1249,7 +1281,7 @@ block.rotary-pump.description = Удосконалений насос. Насо block.thermal-pump.description = Найкращий насос. block.conduit.description = Основний блок транспортування рідини. Пересуває рідини вперед. Застосовується спільно з насосами та іншими трубопроводами. block.pulse-conduit.description = Удосконалений блок транспортування рідини. Швидше транспортує й більше зберігає рідини, ніж стандартні трубопроводи. -block.plated-conduit.description = Переміщує рідини з тією ж швидкістю, що й імпульсні трубопроводи, але має більше міцності. Не приймає рідин із боків окрім інших трубопроводів.\nПротікає менше. +block.plated-conduit.description = Переміщує рідини з тією ж швидкістю, що й імпульсні трубопроводи, але має більше міцності. Не приймає рідин із боків окрім інших трубопроводів.\nНе протікає. block.liquid-router.description = Приймає рідини з одного напрямку та виводить їх до трьох інших напрямків порівну. Також можна зберігати певну кількість рідини. Корисно для розщеплення рідин від одного джерела до кількох мішеней. block.liquid-tank.description = Зберігає велику кількість рідини. Використовуйте для створення буферів у ситуаціях із непостійним попитом на матеріали або як гарантію охолодження життєво важливих блоків. block.liquid-junction.description = Діє як міст для двох каналів, що перетинаються. Корисно в ситуаціях, коли два різні трубопроводи транспортують різні рідини в різні місця. @@ -1300,4 +1332,4 @@ block.cyclone.description = Велика протиповітряна та пр block.spectre.description = Масивна двоствольна гармата. Стріляє великими бронебійними кулями в повітряні та наземні цілі. block.meltdown.description = Масивна лазерна гармата. Заряджає і стріляє лазерним променем у найближчих противників. Для роботи потрібен теплоносій. block.repair-point.description = Безперервно ремонтує найближчу пошкоджену бойову одиницю. -block.segment.description = Пошкоджує та руйнує вхідні снаряди. Окрім лазерних. \ No newline at end of file +block.segment.description = Пошкоджує та руйнує вхідні снаряди. Окрім лазерних. diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index 5744d3d0fd..2852436f12 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -1,4 +1,4 @@ -credits.text = 作者[royal]Anuken[] - [sky]anukendev@gmail.com[] 译者[orange]老滑稽[] - [cyan]QQ:1290419934[] +credits.text = 作者[royal]Anuken[] - [sky]anukendev@gmail.com[] credits = 致谢 contributors = 翻译者和贡献者 discord = 加入 Mindustry 的 Discord! @@ -20,8 +20,8 @@ gameover = 游戏结束 gameover.pvp = [accent] {0}[]队获胜! highscore = [accent]新纪录! copied = 已复制。 -indev.popup = [accent]v6[]仍在[accent]测试版[].\n[lightgray]这意味着:[]\n[scarlet]- 战役不完善[]\n- 内容不完整\n - 大多[scarlet]单位AI[]运行不佳\n- 单位系统不完整\n- 一切内容都可能发生变动或调整。\n\n向[accent]主群(QQ681962751)[]提交错误报告。 -indev.notready = 还没做好看NM +indev.popup = [accent]6.0[]仍在[accent]测试版[].\n[lightgray]这意味着:[]\n[scarlet]- 战役玩法完全没有完成[]\n- 很多内容还没有做完\n - 大多[scarlet]单位AI[]无法正确地运行\n- 单位系统完全没有完成\n- 一切您所看到的内容都可能会移除或调整。\n\n在[accent]Github[]提交错误报告。\n[#66ccff]来自译者WinterUnderTheSnow的忠告:不建议新玩家游玩还在测试阶段的6.0!建议您先从[orange]v104.6[#66ccff]或[orange]v104.10[#66ccff]开始游玩! +indev.notready = 这部分玩法还未开发完成。 load.sound = 音乐加载中 load.map = 地图加载中 @@ -55,6 +55,7 @@ schematic.saved = 蓝图已保存。 schematic.delete.confirm = 确认删除蓝图? schematic.rename = 重命名蓝图 schematic.info = {0}x{1},{2} 个方块 +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = 防守波数:[accent]{0} stat.enemiesDestroyed = 消灭敌人:[accent]{0} @@ -65,7 +66,7 @@ stat.delivered = 装运资源: stat.playtime = 游玩时间:[accent] {0} stat.rank = 最终评级:[accent]{0} -globalitems = [accent]Global Items +globalitems = [accent]全局物品 map.delete = 确定要删除“[accent]{0}[]”地图吗? level.highscore = 最高分:[accent]{0} level.select = 选择关卡 @@ -100,7 +101,6 @@ done = 已完成 feature.unsupported = 您的设备不支持此功能。 mods.alphainfo = 请注意,测试版本中的模组[scarlet]很容易存在缺陷[]。\n在 Mindustry 的 GitHub 或 Discord 上报告你发现的问题。 -mods.alpha = [accent](测试) mods = 模组 mods.none = [lightgray]没有找到模组! mods.guide = 模组制作教程 @@ -115,7 +115,7 @@ mod.disable = 禁用 mod.content = 内容: mod.delete.error = 无法删除模组。可能文件被占用。 mod.requiresversion = [scarlet]所需的游戏版本:[accent]{0} -mod.outdated = [scarlet]模组不兼容6.0(缺失 minGameVersion: 105) +mod.outdated = [scarlet]该模组可能不能在6.0上正确地运行(缺失 minGameVersion: 105) mod.missingdependencies = [scarlet]缺少前置模组:{0} mod.erroredcontent = [scarlet]内容错误 mod.errors = 读取内容时发生错误. @@ -127,14 +127,14 @@ mod.reloadrequired = [scarlet]需要重启 mod.import = 导入模组 mod.import.file = 导入文件 mod.import.github = 从 GitHub 导入模组 -mod.jarwarn = [scarlet]JAR模组存在危险性。[]\n请确保此模组来源安全可靠! +mod.jarwarn = [scarlet]JAR模组注定存在危险性。[]\n请确保此模组来源安全可靠! mod.item.remove = 这个物品是[accent] '{0}'[]模组的一部分. 删除物品需要先卸载此模组. mod.remove.confirm = 此模组将被删除。 mod.author = [lightgray]作者:[] {0} mod.missing = 此存档包含您最近已更新或者现在未安装的模组。存档可能会损坏。确定要加载它吗?\n[lightgray]模组:\n{0} mod.preview.missing = 在创意工坊中发布此模组前,您必须添加一则预览图像。\n请将名为[accent] preview.png[] 的图像放入模组文件夹,然后重试。 mod.folder.missing = 只有文件夹形式的模组能在创意工坊上发布。\n若要将任何模组转换为文件夹,只需将其文件解压缩到文件夹中并删除旧压缩包,然后重新启动游戏或重新加载模组。 -mod.scripts.disable = 你的设备不支持含有脚本的模组。必须禁用相关模组以进入游戏。 +mod.scripts.disable = 您的设备不支持含有脚本的模组。必须禁用相关模组以进入游戏。 about.button = 关于 name = 名字: @@ -157,22 +157,22 @@ server.closing = [accent]服务器关闭… server.kicked.kick = 你被踢出了服务器。 server.kicked.whitelist = 你不在服务器白名单中。 server.kicked.serverClose = 服务器已关闭。 -server.kicked.vote = 你被投票踢出了服务器。 +server.kicked.vote = 您被投票踢出了服务器。 server.kicked.clientOutdated = 客户端过旧,请更新你的游戏。 server.kicked.serverOutdated = 服务器过旧,请联系服务器管理员升级服务器。 -server.kicked.banned = 你在这个服务器上被封禁了。 +server.kicked.banned = 您在这个服务器上被封禁了。 server.kicked.typeMismatch = 此服务器与你的不稳定测试版不兼容。 server.kicked.playerLimit = 服务器已满,请等待一个空位。 server.kicked.recentKick = 你刚刚被踢出服务器。\n请稍后重新连接! -server.kicked.nameInUse = 你的名字与服务器中的一个人重复了。 +server.kicked.nameInUse = 您的名字与服务器中的一个人重复了。 server.kicked.nameEmpty = 无效的名字! -server.kicked.idInUse = 你已经连接了这个服务器!不允许在一台电脑上用两个客户端连接。 +server.kicked.idInUse = 您已经连接了这个服务器!不允许在一台设备上用两个客户端连接。 server.kicked.customClient = 这个服务器不支持自定义客户端。请下载官方版本。 server.kicked.gameover = 游戏结束! server.kicked.serverRestarting = 服务器正在重启. server.versions = 客户端版本:[accent] {0}[]\n服务器版本:[accent] {1}[] host.info = [accent]创建局域网游戏[]按钮会在[scarlet] 6567 []端口运行一个服务器。[]\n任何在同一个[lightgray] Wi-Fi 或本地网络[]下的人应该都可以在服务器列表中看到你的服务器。\n\n如果你想让别人在任何地方都能通过 IP 地址连接,你需要设定[accent]端口转发[]。\n\n[lightgray]注意:如果某人无法连接到你的局域网游戏,请确保你在防火墙设置里允许了 Mindustry 访问本地网络。 -join.info = 您可以输入[accent]服务器的 IP 地址[]来连接,或寻找[accent]本地网络[]中的服务器来连接。\n支持局域网或广域网的多人游戏。\n\n[lightgray]注意:没有全球服务器列表;如果你想通过 IP 地址连接某个服务器,你需要向房主询问 IP 地址。 +join.info = 您可以输入[accent]服务器的 IP 地址[]来连接,或寻找[accent]本地网络[]中的服务器来连接。\n支持局域网或广域网的多人游戏。\n\n[lightgray]注意:没有全球服务器列表;如果你想通过 IP 地址连接某个服务器,你需要向服主询问 IP 地址。 hostserver = 创建服务器 invitefriends = 邀请朋友 hostserver.mobile = 创建\n服务器 @@ -201,7 +201,7 @@ server.bans.none = 没有被封禁的玩家! server.admins = 管理员 server.admins.none = 该服务器没有管理员! server.add = 添加服务器 -server.delete = 你确定要删除这个服务器吗? +server.delete = 您确定要删除这个服务器吗? server.edit = 编辑服务器 server.outdated = [crimson]服务器过旧![] server.outdated.client = [crimson]客户端过旧![] @@ -228,11 +228,11 @@ server.addressinuse = 地址已在使用! server.invalidport = 无效的端口! server.error = [crimson]创建服务器错误:[accent]{0} save.new = 新存档 -save.overwrite = 你确定你要覆盖这个存档吗? +save.overwrite = 您确定要覆盖这个存档吗? overwrite = 覆盖 save.none = 没有找到存档! savefail = 保存失败! -save.delete.confirm = 你确定你要删除这个存档吗? +save.delete.confirm = 您确定要删除这个存档吗? save.delete = 删除 save.export = 导出存档 save.import.invalid = [accent]此存档无效! @@ -245,7 +245,7 @@ save.rename.text = 新名称: selectslot = 选择一个存档。 slot = [accent]存档位 {0} editmessage = 编辑消息 -save.corrupted = [accent]存档损坏或无效!\n如果你刚刚升级了游戏,那么这可能是因为存档格式改变了,而[scarlet]不是[] bug 。 +save.corrupted = [accent]存档损坏或无效!\n如果您刚刚升级了游戏,那么这可能是因为存档格式改变了,而[scarlet]不是[] bug 。 empty = < 空 > on = 开 off = 关 @@ -284,18 +284,21 @@ selectschematic = [accent][[{0}][]来选择复制 pausebuilding = [accent][[{0}][]来暂停建造 resumebuilding = [scarlet][[{0}][]来恢复建造 wave = [accent]第{0}波 +wave.cap = [accent]Wave {0}/{1} wave.waiting = [lightgray]下一波倒计时:{0}秒 wave.waveInProgress = [lightgray]波次袭来 waiting = [lightgray]等待中… waiting.players = 等待玩家中… wave.enemies = [lightgray]剩余 {0} 个敌人 wave.enemy = [lightgray]剩余 {0} 个敌人 +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. loadimage = 加载图片 saveimage = 保存图片 unknown = 未知 custom = 自定义 -builtin = 内建的 -map.delete.confirm = 你确定你想要删除这张地图吗?这个操作无法撤销! +builtin = 内置的 +map.delete.confirm = 您确定你想要删除这张地图吗?这个操作无法撤销! map.random = [accent]随机地图 map.nospawn = 这个地图没有核心!请在编辑器中添加一个[royal]己方[]的核心。 map.nospawn.pvp = 这个地图没有敌人的核心!请在编辑器中添加一个[royal]敌人[]的核心。 @@ -328,6 +331,7 @@ editor.generation = 筛选器: editor.ingame = 游戏内编辑 editor.publish.workshop = 上传到创意工坊 editor.newmap = 新地图 +editor.center = Center workshop = 创意工坊 waves.title = 波数 waves.remove = 移除 @@ -359,7 +363,7 @@ editor.removeunit = 移除单位 editor.teams = 队伍 editor.errorload = 读取文件出错:\n[accent]{0} editor.errorsave = 保存文件出错:\n[accent]{0} -editor.errorimage = 这是一幅图片,不是地图。请不要更改文件的扩展名来导入。\n\n如果你想导入地图,请在编辑器中使用“导入地图”按钮。 +editor.errorimage = 这是一幅图片,不是地图。请不要更改文件的扩展名来导入。\n\n如果您想导入地图,请在编辑器中使用“导入地图”按钮。 editor.errorlegacy = 此地图太旧了,旧的地图格式已不再支持。 editor.errornot = 这不是地图文件。 editor.errorheader = 此地图文件无效或已损坏。 @@ -372,8 +376,8 @@ editor.resize = 调整大小 editor.loadmap = 载入地图 editor.savemap = 保存地图 editor.saved = 已保存! -editor.save.noname = 你的地图没有名字!在“地图信息”菜单里设置一个。 -editor.save.overwrite = 你的地图覆盖了一个内置的地图!在“地图信息”菜单里重新设置一个不同的名称。 +editor.save.noname = 您的地图没有名字!在“地图信息”菜单里设置一个。 +editor.save.overwrite = 您的地图覆盖了一个内置的地图!在“地图信息”菜单里重新设置一个不同的名称。 editor.import.exists = [scarlet]无法导入:[]存在名为“{0}”的内置地图! editor.import = 导入… editor.importmap = 导入地图 @@ -416,6 +420,7 @@ filters.empty = [lightgray]没有过滤条件!用下方的按钮添加。 filter.distort = 扭曲程度 filter.noise = 波动程度 filter.enemyspawn = 敌人生成点选择 +filter.spawnpath = Path To Spawn filter.corespawn = 核心降落点选择 filter.median = 平均数 filter.oremedian = 矿石平均数 @@ -440,6 +445,7 @@ filter.option.amount = 数量 filter.option.block = 方块 filter.option.floor = 地面 filter.option.flooronto = 地面目标 +filter.option.target = Target filter.option.wall = 墙 filter.option.ore = 矿石 filter.option.floor2 = 二重地面 @@ -471,15 +477,9 @@ requirement.wave = {1}中的第{0}波次 requirement.core = 在{0}中摧毁敌方核心 requirement.research = 研究 {0} requirement.capture = 占领 {0} -resume = 暂停:\n[lightgray]{0} bestwave = [lightgray]最高波次:{0} -launch = < 发射 > launch.text = 发射 -launch.title = 发射成功 -launch.next = [lightgray]下个发射窗口在第{0}波 -launch.unable2 = [scarlet]无法发射[] -launch.confirm = 您将装载并发射核心中的所有资源。\n此地图将重置,无法回到此基地。 -launch.skip.confirm = 如果现在跳过,在下一个发射窗口到来前,您都无法发射。 +research.multiplayer = Only the host can research items. uncover = 解锁 configure = 设定装运的数量 loadout = 装运 @@ -512,6 +512,7 @@ weather.rain.name = 降雨 weather.snow.name = 降雪 weather.sandstorm.name = 沙尘暴 weather.sporestorm.name = 孢子雾 +weather.fog.name = Fog sectors.unexplored = [lightgray]未探索 sectors.resources = 资源: @@ -521,6 +522,11 @@ sectors.resume = 继续 sectors.launch = 发射 sectors.select = 选择 sectors.nonelaunch = [lightgray]无 (太阳) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources + +planet.serpulo.name = Serpulo +planet.sun.name = Sun sector.groundZero.name = 零号地区 sector.craters.name = 陨石带 @@ -532,7 +538,7 @@ sector.nuclearComplex.name = 核裂阵 sector.overgrowth.name = 增生区 sector.tarFields.name = 油田 sector.saltFlats.name = 盐碱荒滩 -sector.crags.name = 悬崖 +sector.fungalPass.name = Fungal Pass sector.groundZero.description = 踏上旅程的最佳位置。这儿的敌人威胁很小,但资源也少。\n收集尽可能多的铅和铜。\n出发吧! sector.frozenForest.description = 即使是靠近山脉的这里,孢子也已经扩散。他们不能长期停留在寒冷的温度中。\n\n开始运用电力。建造火力发电机并学会使用修理者。 @@ -560,6 +566,10 @@ settings.clear.confirm = 您确定要清除此数据?\n此操作无法撤销 settings.clearall.confirm = [scarlet]警告![]\n这将清除所有数据,包括存档、地图、解锁和按键绑定。\n按「是」后,游戏将删除所有数据并自动退出。 settings.clearsaves.confirm = 您确定要清除存档? settings.clearsaves = 清除存档 +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? paused = [accent]< 暂停 > clear = 清除 banned = [scarlet]已禁止 @@ -570,12 +580,14 @@ info.title = [accent]详情 error.title = [crimson]发生了一个错误 error.crashtitle = 发生了一个错误 unit.nobuild = [scarlet]单位未能建造 +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]??? + stat.input = 输入 stat.output = 输出 stat.booster = 增强物品/液体 stat.tiles = 所需地型 stat.affinities = 相关 -block.unknown = [lightgray]??? stat.powercapacity = 能量容量 stat.powershot = 能量/发射 stat.damage = 伤害 @@ -594,6 +606,7 @@ stat.powerconnections = 最多连接 stat.poweruse = 使用能量 stat.powerdamage = 功率/损伤 stat.itemcapacity = 物品容量 +stat.memorycapacity = Memory Capacity stat.basepowergeneration = 基础能源输出 stat.productiontime = 生产时间 stat.repairtime = 建筑完全修复时间 @@ -613,6 +626,28 @@ stat.reload = 每秒发射数 stat.ammo = 弹药 stat.shieldhealth = 盾容 stat.cooldowntime = 冷却时间 +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = 需要更好的钻头 bar.noresources = 缺失资源 @@ -624,6 +659,7 @@ bar.powerbalance = 能量:{0}/秒 bar.powerstored = 储能:{0}/{1} bar.poweramount = 能量:{0} bar.poweroutput = 能量输出:{0} +bar.powerlines = Connections: {0}/{1} bar.items = 物品:{0} bar.capacity = 容量:{0} bar.unitcap = {0} {1}/{2} @@ -635,6 +671,8 @@ bar.progress = 制造进度 bar.input = 输入 bar.output = 输出 +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray] 伤害 bullet.splashdamage = [stat]{0}[lightgray] 范围伤害 ~[stat] {1}[lightgray] 格 bullet.incendiary = [stat] 燃烧 @@ -642,12 +680,15 @@ bullet.homing = [stat] 追踪 bullet.shock = [stat] 电击 bullet.frag = [stat] 分裂 bullet.knockback = [stat]{0}[lightgray] 击退 +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat] 冰冻 bullet.tarred = [stat] 减速 bullet.multiplier = [stat]{0}[lightgray]x 装弹数量 bullet.reload = [stat]{0}[lightgray]x 装弹速度 unit.blocks = 方块 +unit.blockssquared = blocks² unit.powersecond = 能量/秒 unit.liquidsecond = 液体/秒 unit.itemssecond = 物品/秒 @@ -670,7 +711,7 @@ category.power = 能量 category.liquids = 液体 category.items = 物品 category.crafting = 制造 -category.shooting = 发射 +category.function = Function category.optional = 可选的增强 setting.landscape.name = 锁定横屏 setting.shadows.name = 影子 @@ -679,7 +720,6 @@ setting.linear.name = 抗锯齿 setting.hints.name = 提示 setting.flow.name = 显示资源传送速度[scarlet] (实验性) setting.buildautopause.name = 自动暂停建造 -setting.mapcenter.name = 地图自动居中 setting.animatedwater.name = 流动的水 setting.animatedshields.name = 动态画面 setting.antialias.name = 抗锯齿 @@ -713,7 +753,6 @@ setting.fullscreen.name = 全屏 setting.borderlesswindow.name = 无边界窗口[lightgray](可能需要重启) setting.fps.name = 显示 FPS 和网络延迟 setting.smoothcamera.name = 镜头平滑 -setting.blockselectkeys.name = 显示建筑选择按键 setting.vsync.name = 垂直同步 setting.pixelate.name = 像素画面 [lightgray](禁用动画) setting.minimap.name = 显示小地图 @@ -755,8 +794,8 @@ keybind.clear_building.name = 清除建筑 keybind.press = 请按一个键… keybind.press.axis = 请按一个轴或键… keybind.screenshot.name = 地图截图 -keybind.toggle_power_lines.name = 显隐能量标识线 -keybind.toggle_block_status.name = 显隐方块状态 +keybind.toggle_power_lines.name = 显示/隐藏能量标识线 +keybind.toggle_block_status.name = 显示/隐藏方块状态 keybind.move_x.name = 水平移动 keybind.move_y.name = 竖直移动 keybind.mouse_move.name = 跟随鼠标 @@ -822,6 +861,7 @@ mode.custom = 自定义模式 rules.infiniteresources = 无限资源 rules.reactorexplosions = 反应堆爆炸 +rules.schematic = Schematics Allowed rules.wavetimer = 波次计时器 rules.waves = 波次 rules.attack = 攻击模式 @@ -847,6 +887,7 @@ rules.title.unit = 单位 rules.title.experimental = 实验性 rules.title.environment = 环境性 rules.lighting = 光照 +rules.enemyLights = Enemy Lights rules.fire = Fire rules.explosions = 建筑/单位爆炸伤害 rules.ambientlight = 环境光 @@ -858,6 +899,7 @@ content.item.name = 物品 content.liquid.name = 液体 content.unit.name = 部队 content.block.name = 块 + item.copper.name = 铜 item.lead.name = 铅 item.coal.name = 煤 @@ -879,54 +921,37 @@ liquid.slag.name = 矿渣 liquid.oil.name = 石油 liquid.cryofluid.name = 冷冻液 -item.explosiveness = [lightgray]爆炸性:{0}% -item.flammability = [lightgray]易燃性:{0}% -item.radioactivity = [lightgray]放射性:{0}% - -unit.health = [lightgray]生命值:{0} -unit.speed = [lightgray]速度:{0} -unit.weapon = [lightgray]武器{0} -unit.itemcapacity = [lightgray]物品容量:{0} -unit.minespeed = [lightgray]采矿速度:{0}% -unit.minepower = [lightgray]采矿力量:{0} -unit.ability = [lightgray]能力:{0} -unit.buildspeed = [lightgray]建造速度:{0}% - -liquid.heatcapacity = [lightgray]热容量:{0} -liquid.viscosity = [lightgray]粘度:{0} -liquid.temperature = [lightgray]温度:{0} - unit.dagger.name = 尖刀 -unit.mace.name = 牙狼 +unit.mace.name = 战锤 unit.fortress.name = 堡垒 unit.nova.name = 新星 -unit.pulsar.name = 脉冲星 +unit.pulsar.name = 恒星 unit.quasar.name = 超星 unit.crawler.name = 爬虫 -unit.atrax.name = 火蛛 -unit.spiroct.name = 天蝎 -unit.arkyid.name = 血蛭 -unit.toxopid.name = 毒蟒 -unit.flare.name = 星耀 +unit.atrax.name = 毒蛛 +unit.spiroct.name = 血蛭 +unit.arkyid.name = 毒蛊 +unit.toxopid.name = 天蝎 +unit.flare.name = 星辉 unit.horizon.name = 天垠 unit.zenith.name = 苍穹 -unit.antumbra.name = 半影 +unit.antumbra.name = 月影 unit.eclipse.name = 日蚀 unit.mono.name = 独影 -unit.poly.name = 聚幻 -unit.mega.name = 巨像 +unit.poly.name = 聚辉 +unit.mega.name = 巨灵 unit.quad.name = 雷霆 unit.oct.name = 要塞 unit.risso.name = 梭鱼 unit.minke.name = 刺鲸 -unit.bryde.name = 虎鲨 -unit.sei.name = 湖妖 +unit.bryde.name = 戟鲸 +unit.sei.name = 水怪 unit.omura.name = 海神 -unit.alpha.name = 阿尔法 +unit.alpha.name = 沉思者 unit.beta.name = 贝塔 -unit.gamma.name = 伽玛 +unit.gamma.name = 伽马 unit.scepter.name = 权杖 -unit.reign.name = 君王 +unit.reign.name = 王座 unit.vela.name = 灾星 unit.corvus.name = 死星 @@ -936,6 +961,7 @@ block.cliff.name = 悬崖 block.sand-boulder.name = 沙砂巨石 block.grass.name = 草地 block.slag.name = 矿渣 +block.space.name = Space block.salt.name = 盐碱地 block.salt-wall.name = 盐墙 block.pebbles.name = 鹅卵石 @@ -981,6 +1007,7 @@ block.darksand-water.name = 暗沙 水 block.char.name = 焦土 block.dacite.name = 英安岩 block.dacite-wall.name = 英安岩墙 +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = 冰雪地 block.stone-wall.name = 石墙 block.ice-wall.name = 冰墙 @@ -1029,7 +1056,7 @@ block.conveyor.name = 传送带 block.titanium-conveyor.name = 钛传送带 block.plastanium-conveyor.name = 塑钢传送带 block.armored-conveyor.name = 装甲传送带 -block.armored-conveyor.description = 运送物品,与钛传送带一样的速度,但有更强的装甲。除其他传送带,不接受任何边的输入。 +block.armored-conveyor.description = 运送物品,与钛传送带一样的速度,但有更强的装甲。除其他传送带,不接受任何边上的输入。 block.junction.name = 连接器 block.router.name = 路由器 block.distributor.name = 分配器 @@ -1075,6 +1102,7 @@ block.power-source.name = 无限能源 block.unloader.name = 装卸器 block.vault.name = 仓库 block.wave.name = 波浪 +block.tsunami.name = Tsunami block.swarmer.name = 蜂群 block.salvo.name = 齐射炮 block.ripple.name = 浪涌 @@ -1114,31 +1142,33 @@ block.arc.name = 电弧 block.rtg-generator.name = RTG 发电机 block.spectre.name = 幽灵 block.meltdown.name = 熔毁 +block.foreshadow.name = Foreshadow block.container.name = 容器 block.launch-pad.name = 发射台 block.launch-pad-large.name = 大型发射台 block.segment.name = 裂解光束 block.command-center.name = 指挥中心 -block.ground-factory.name = 陆战单位工厂 -block.air-factory.name = 空战单位工厂 -block.naval-factory.name = 海战单位工厂 -block.additive-reconstructor.name = 数增级单位重构工厂 -block.multiplicative-reconstructor.name = 倍增级单位重构工厂 -block.exponential-reconstructor.name = 幂乘级单位重构工厂 -block.tetrative-reconstructor.name = 无量级单位重构工厂 +block.ground-factory.name = 陆军工厂 +block.air-factory.name = 空军工厂 +block.naval-factory.name = 海军工厂 +block.additive-reconstructor.name = 添改单位重构工厂 +block.multiplicative-reconstructor.name = 多倍单位重构工厂 +block.exponential-reconstructor.name = 多幂级单位重构工厂 +block.tetrative-reconstructor.name = 实验性泰坦重构工厂 block.payload-conveyor.name = 载荷传送带 block.payload-router.name = 载荷路由器 -block.disassembler.name = 分离机 -block.silicon-crucible.name = 热能坩埚 -block.overdrive-dome.name = 超速场投射器 +block.disassembler.name = 离心机 +block.silicon-crucible.name = 硅坩埚 +block.overdrive-dome.name = 超速穹顶投射器 block.switch.name = 开关 block.micro-processor.name = 微型处理器 block.logic-processor.name = 逻辑处理器 -block.hyper-processor.name = 超频处理器 +block.hyper-processor.name = 超核处理器 block.logic-display.name = 逻辑显示屏 block.large-logic-display.name = 大型逻辑显示屏 -block.memory-cell.name = 存储单元 +block.memory-cell.name = 内存单位 +block.memory-bank.name = Memory Bank team.blue.name = 蓝 team.crux.name = 红 @@ -1302,4 +1332,4 @@ block.cyclone.description = 大型炮塔,对空对地,发射在敌人周围 block.spectre.description = 超大型炮塔,对空对地,一次射出两颗强大的破甲弹。 block.meltdown.description = 超大型激光炮塔,充能之后持续发射光束,需要冷却剂。 block.repair-point.description = 持续治疗其附近受损最严重的单位。 -block.segment.description = 摧毁袭来的除激光以外的子弹或导弹. \ No newline at end of file +block.segment.description = 摧毁袭来的除激光以外的子弹或导弹. diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index e495f4b768..591ef50191 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -14,14 +14,14 @@ link.f-droid.description = F-Droid 目錄頁面 link.wiki.description = 官方 Mindustry 維基 link.suggestions.description = 建議新功能 linkfail = 無法打開連結!\n我們已將該網址複製到您的剪貼簿。 -screenshot = 截圖保存到{0} -screenshot.invalid = 地圖太大了,可能沒有足夠的內存用於截圖。 +screenshot = 截圖儲存到{0} +screenshot.invalid = 地圖太大了,可能沒有足夠的記憶體用於截圖。 gameover = 遊戲結束 gameover.pvp = [accent]{0}[]隊獲勝! highscore = [accent]新的高分紀錄! copied = 已複製。 -indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[]. -indev.notready = This part of the game isn't ready yet +indev.popup = [accent]v6[] 目前仍在 in [accent]alpha[]。\n[lightgray]這代表了:[]\n[scarlet]- 戰役尚未完成[]\n- 部份內容遺失\n - 大多數的 [scarlet]單位 AI[] 無法正常運作\n- 許多單位仍未完成\n- 您看到的所有內容均可能變更或移除。\n\n請在 [accent]Github[] 上回報臭蟲或當機。 +indev.notready = 這部份的遊戲尚未完成 load.sound = 音效載入中 load.map = 地圖載入中 @@ -39,11 +39,11 @@ be.noupdates = 沒有新的更新。 be.check = 檢查是否有新的更新 schematic = 藍圖 -schematic.add = 儲存藍圖... +schematic.add = 儲存藍圖…… schematics = 藍圖 schematic.replace = 相同名稱的藍圖已經存在。是否取代它? schematic.exists = 相同名稱的藍圖已經存在。 -schematic.import = 匯入藍圖... +schematic.import = 匯入藍圖…… schematic.exportfile = 匯出檔案 schematic.importfile = 匯入檔案 schematic.browseworkshop = 瀏覽工作坊 @@ -51,10 +51,11 @@ schematic.copy = 複製到剪貼簿 schematic.copy.import = 從剪貼簿匯入 schematic.shareworkshop = 分享到工作坊 schematic.flip = [accent][[{0}][]/[accent][[{1}][]:翻轉藍圖 -schematic.saved = 藍圖已保存。 +schematic.saved = 藍圖已儲存。 schematic.delete.confirm = 該藍圖將被完全清除。 schematic.rename = 重新命名藍圖 schematic.info = {0}x{1}, {2}方塊 +schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server. stat.wave = 打敗的波次:[accent]{0} stat.enemiesDestroyed = 摧毀的敵人:[accent]{0} @@ -65,7 +66,7 @@ stat.delivered = 發射的核心資源: stat.playtime = 遊玩時間:[accent] {0} stat.rank = 最終排名:[accent]{0} -globalitems = [accent]Global Items +globalitems = [accent]全域物品 map.delete = 確認要刪除「[accent]{0}[]」地圖嗎? level.highscore = 最高分:[accent]{0} level.select = 選擇關卡 @@ -91,23 +92,22 @@ continue = 繼續 maps.none = [lightgray]找不到地圖! invalid = 無效 pickcolor = 選擇顏色 -preparingconfig = 配置準備中 +preparingconfig = 設定準備中 preparingcontent = 內容準備中 uploadingcontent = 內容上傳中 uploadingpreviewfile = 上傳預覽文件 -committingchanges = 提交變更 +committingchanges = 遞交變更 done = 完成 -feature.unsupported = 您的設備不支持此功能。 +feature.unsupported = 您的裝置不支援此功能。 -mods.alphainfo = 請記住,模組仍處於Alpha狀態,[scarlet]可能會有很多BUG[].\n向Mindustry GitHub或Discord報告發現的任何問題。 -mods.alpha = [accent](Alpha) +mods.alphainfo = 請記住,模組仍處於Alpha狀態,[scarlet]可能會有很多臭蟲[]。\n請到Mindustry GitHub或Discord報告發現的任何問題。 mods = 模組 mods.none = [lightgray]找不到模組! mods.guide = 模組指南 mods.report = 回報錯誤 mods.openfolder = 開啟模組資料夾 mods.reload = 重新載入 -mods.reloadexit = The game will now exit, to reload mods. +mods.reloadexit = 遊戲將會結束以重新載入模組。 mod.display = [gray]模組:[orange]{0} mod.enabled = [lightgray]已啟用 mod.disabled = [scarlet]已禁用 @@ -115,32 +115,32 @@ mod.disable = 禁用 mod.content = 內容: mod.delete.error = 無法刪除模組,檔案可能在使用中。 mod.requiresversion = [scarlet]最低遊戲版本要求:[accent]{0} -mod.outdated = [scarlet]Not compatible with V6 (no minGameVersion: 105) -mod.missingdependencies = [scarlet]缺少必須項目: {0} +mod.outdated = [scarlet]與 V6 不相容(無 minGameVersion: 105) +mod.missingdependencies = [scarlet]缺少依賴關係:{0} mod.erroredcontent = [scarlet]內容錯誤 mod.errors = 載入內容時發生錯誤 -mod.noerrorplay = [scarlet]你使用了有錯誤的模組。[] 遊戲前請先禁用相關模組或修正錯誤。 -mod.nowdisabled = [scarlet]「{0}」模組缺少必須項目:[accent] {1}\n[lightgray]必須先下載這些模組。\n此模組將被自動禁用。 +mod.noerrorplay = [scarlet]你使用了有問題的模組。[] 遊戲前請先停用相關模組或修正問題。 +mod.nowdisabled = [scarlet]「{0}」模組缺少依賴關係:[accent] {1}\n[lightgray]必須先下載這些模組。\n此模組將被自動停用。 mod.enable = 啟用 mod.requiresrestart = 遊戲將立即關閉以套用模組變更。 mod.reloadrequired = [scarlet]需要重新載入 mod.import = 匯入模組 mod.import.file = 匯入檔案 mod.import.github = 匯入GitHub模組 -mod.jarwarn = [scarlet]JAR mods are inherently unsafe.[]\nMake sure you're importing this mod from a trustworthy source! +mod.jarwarn = [scarlet]JAR 模組本質上是不安全的。[]\n請確保您正從可信的來源匯入這個模組! mod.item.remove = 此物品是[accent] '{0}'[]模組的一部份。解除安裝模組以移除此物品。 mod.remove.confirm = 該模組將被刪除。 -mod.author = [lightgray]作者:[] {0} -mod.missing = 此存檔含有您最近更新或不再安裝的模組。可能會發生存檔損毀。您確定要載入嗎?\n[lightgray]模組:\n{0} -mod.preview.missing = 在工作坊發佈這個模組前,您必須添加預覽圖。\n在該模組的資料夾中放置一個名為[accent] preview.png[]的圖片並重試。 +mod.author = [lightgray]作者:[] {0} +mod.missing = 此存檔含有您最近更新或已解除安裝的模組。可能會發生存檔損毀。您確定要載入嗎?\n[lightgray]模組:\n{0} +mod.preview.missing = 在工作坊發佈這個模組前,您必須新增預覽圖。\n在該模組的資料夾中加入一個名為[accent] preview.png[]的圖片並重試。 mod.folder.missing = 只有資料夾形式的模組可以在工作坊上發布。\n要將模組轉換為資料夾,只需將其文件解壓縮到資料夾並刪除舊的.zip檔,然後重新啟動遊戲或重新載入模組。 -mod.scripts.disable = 您的設備不支持包含指令檔的模組。您必須關閉這些模組才能進行遊戲。 +mod.scripts.disable = 您的裝置不支持包含指令檔的模組。您必須關閉這些模組才能進行遊戲。 about.button = 關於 name = 名稱: noname = 請先選擇一個[accent]玩家名稱[]。 -planetmap = Planet Map -launchcore = Launch Core +planetmap = 星球地圖 +launchcore = 發射核心 filename = 檔案名稱︰ unlocked = 已解鎖新內容! completed = [accent]完成 @@ -148,40 +148,40 @@ techtree = 科技樹 research.list = [lightgray]研究︰ research = 研究 researched = [lightgray]{0}研究完成。 -research.progress = {0}% complete +research.progress = {0}% 完成 players = {0}個線上玩家 players.single = {0}個線上玩家 players.search = 搜尋 players.notfound = [gray]沒有找到玩家 -server.closing = [accent]正在關閉伺服器... +server.closing = [accent]正在關閉伺服器…… server.kicked.kick = 您已被踢出伺服器! server.kicked.whitelist = 您不在這裡的白名單內. server.kicked.serverClose = 伺服器已關閉。 server.kicked.vote = 您已被投票踢出伺服器,再見。 server.kicked.clientOutdated = 客戶端版本過舊!請更新遊戲! -server.kicked.serverOutdated = 伺服器版本過舊!請聯絡伺服主更新伺服器! -server.kicked.banned = 您已經在這個伺服器中被封禁。 +server.kicked.serverOutdated = 伺服器版本過舊!請聯絡伺服器管理員更新伺服器! +server.kicked.banned = 您已經在這個伺服器中被封鎖。 server.kicked.typeMismatch = 該伺服器與您的版本不相容。 -server.kicked.playerLimit = 該伺服器已滿。請等待一個空位置。 +server.kicked.playerLimit = 該伺服器已滿。請等待玩家離開。 server.kicked.recentKick = 您最近曾被踢出伺服器。\n請稍後再進行連線。 server.kicked.nameInUse = 伺服器中已經\n有人有相同的名稱了。 server.kicked.nameEmpty = 你的名稱必須至少包含一個字母或數字。 server.kicked.idInUse = 你已經在伺服器中!不允許使用兩個帳號。 -server.kicked.customClient = 這個伺服器不支持自訂客戶端,請下載官方版本。 +server.kicked.customClient = 這個伺服器不支援自訂的客戶端,請下載官方版本。 server.kicked.gameover = 遊戲結束! server.kicked.serverRestarting = 伺服器正在重新啟動。 server.versions = 您的遊戲版本:[accent] {0}[]\n伺服器遊戲版本:[accent] {1}[] -host.info = [accent]建立伺服器[]按鍵會在連接埠[scarlet]6567[]建立一個伺服器。\n所有跟您在同一個[lightgray]網路或區域網路[]環境的玩家應該能在他們的伺服器清單中找到您的伺服器。\n\n如果您希望網際網路上的玩家透過IP 位址連線到您的伺服器,您必須設定[accent]連接埠轉發[]。\n\n[lightgray]注意:如果區域網路內有玩家無法連線至您的伺服器,請務必確認您已於防火牆設定中開放Mindustry存取您的區域網路。請注意公共網路有時不允許搜尋伺服器。 -join.info = 您可以在此輸入欲連線的[accent]伺服器IP位址[],或尋找[accent]區域網路[]/[accent]全域網路[]內的伺服器。目前支援區域網路與網際網路連線。\n\n[lightgray]如果您想透過IP位址連線到他人的伺服器,您必須向他們詢問IP位址。自己的IP位置可以從google上搜尋到。 +host.info = [accent]建立伺服器[]按鍵會在連接埠[scarlet]6567[]建立一個伺服器。\n所有跟您在同一個[lightgray]網路或區域網路[]環境的玩家應該能在他們的伺服器清單中找到您的伺服器。\n\n如果您希望網際網路上的玩家透過 IP 位置連線到您的伺服器,您必須設定[accent]連接埠轉發[]。\n\n[lightgray]注意:如果區域網路內有玩家無法連線至您的伺服器,請務必確認您已於防火牆設定中開放 Mindustry 存取您的區域網路。請注意公用網路有時不允許搜尋伺服器。 +join.info = 您可以在此輸入欲連線的[accent]伺服器 IP 位置[],或尋找[accent]區域網路[]/[accent]網際網路[]內的伺服器。目前支援區域網路與網際網路連線。\n\n[lightgray]如果您想透過 IP 位置連線到他人的伺服器,您必須向他們詢問 IP 位置。自己的 IP 位置可以從 Google 上搜尋到。 hostserver = 建立伺服器 invitefriends = 邀請好友 hostserver.mobile = 建立\n伺服器 host = 伺服器 -hosting = [accent]伺服器啟動中... +hosting = [accent]伺服器啟動中…… hosts.refresh = 刷新 hosts.discovering = 搜尋區域網路遊戲 hosts.discovering.any = 搜尋遊戲 -server.refreshing = 伺服器刷新中 +server.refreshing = 伺服器重新整理中 hosts.none = [lightgray]找不到區域網路伺服器! host.invalid = [scarlet]無法連線至伺服器。 @@ -195,9 +195,9 @@ trace.ip = IP:[accent]{0} trace.id = ID:[accent]{0} trace.mobile = 行動客戶端:[accent]{0} trace.modclient = 自訂客戶端:[accent]{0} -invalidid = 無效的客戶端 ID!請提交錯誤報告。 -server.bans = 封禁 -server.bans.none = 沒有玩家被封禁! +invalidid = 無效的客戶端 ID!請遞交錯誤回報。 +server.bans = 封鎖 +server.bans.none = 沒有玩家被封鎖! server.admins = 管理員 server.admins.none = 找不到管理員! server.add = 新增伺服器 @@ -207,29 +207,29 @@ server.outdated = [crimson]伺服器版本過舊![] server.outdated.client = [crimson]客戶端版本過舊![] server.version = [gray]v{0} {1} server.custombuild = [accent]自訂客戶端 -confirmban = 您確定要封禁「[white]{0}[]」嗎? +confirmban = 您確定要封鎖「[white]{0}[]」嗎? confirmkick = 您確定要踢出「[white]{0}[]」嗎? -confirmvotekick = 您確定要投票剔除「[white]{0}[]」嗎? -confirmunban = 您確定要解除封禁這個玩家嗎? +confirmvotekick = 您確定要投票踢出「[white]{0}[]」嗎? +confirmunban = 您確定要解除封鎖這個玩家嗎? confirmadmin = 您確定要晉升「[white]{0}[]」為管理員嗎? confirmunadmin = 您確定要解除「[white]{0}[]」的管理員嗎? joingame.title = 加入遊戲 -joingame.ip = IP位址: +joingame.ip = IP 位置: disconnect = 已中斷連線。 disconnect.error = 連線錯誤。 disconnect.closed = 連線關閉。 -disconnect.timeout = 連線超時。 +disconnect.timeout = 連線逾時。 disconnect.data = 無法載入地圖資料! cantconnect = 無法加入遊戲 ([accent]{0}[]). -connecting = [accent]連線中... -connecting.data = [accent]地圖資料載入中... +connecting = [accent]連線中…… +connecting.data = [accent]地圖資料載入中…… server.port = 連接埠: -server.addressinuse = 該位址已被使用! +server.addressinuse = 該位置已被使用! server.invalidport = 無效的連接埠! server.error = [crimson]建立伺服器時發生錯誤。 save.new = 新存檔 -save.overwrite = 您確定要覆蓋存檔嗎? -overwrite = 覆蓋 +save.overwrite = 您確定要覆寫存檔嗎? +overwrite = 覆寫 save.none = 找不到存檔! savefail = 存檔失敗! save.delete.confirm = 您確定要刪除這個存檔嗎? @@ -270,49 +270,52 @@ back = 返回 data.export = 匯出數據 data.import = 匯入數據 data.openfolder = 開啟檔案資料夾 -data.exported = 數據已匯出。 +data.exported = 資料已匯出。 data.invalid = 這不是有效的遊戲資料。 -data.import.confirm = 導入外部數據將覆蓋您當前[scarlet]所有的[]遊戲數據,\n[accent]這個動作不能撤銷![]\n\n匯入數據後,您的遊戲將立即退出。 -quit.confirm = 您確定要退出嗎? -quit.confirm.tutorial = 您確定您知道自己在做什麼嗎?\n該教學可以在[accent] 設定->遊戲[] 選項中重置教學。 -loading = [accent]載入中... -reloading = [accent]模組重新載入中... -saving = [accent]儲存中... +data.import.confirm = 導入外部資料將會覆寫您目前[scarlet]所有的[]遊戲資料,\n[accent]此動作無法復原![]\n\n匯入資料後,您的遊戲將立刻結束。 +quit.confirm = 您確定要結束嗎? +quit.confirm.tutorial = 您確定您知道自己在做什麼嗎?\n可以在[accent] 設定->遊戲[] 選項中重設教學。 +loading = [accent]載入中…… +reloading = [accent]模組重新載入中…… +saving = [accent]儲存中…… respawn = [accent][[{0}][]重生 cancelbuilding = [accent][[{0}][]清除計畫 selectschematic = [accent][[{0}][]選擇並複製 pausebuilding = [accent][[{0}][]暫停建造 -resumebuilding = [scarlet][[{0}][]恢復建造 +resumebuilding = [scarlet][[{0}][]繼續建造 wave = [accent]第{0}波 +wave.cap = [accent]Wave {0}/{1} wave.waiting = [lightgray]將於{0}秒後抵達 wave.waveInProgress = [lightgray]波次進行中 -waiting = [lightgray]等待中... -waiting.players = 等待玩家中... +waiting = [lightgray]等待中…… +waiting.players = 等待玩家中…… wave.enemies = [lightgray]剩下{0}個敵人 wave.enemy = [lightgray]剩下{0}個敵人 -loadimage = 載入圖像 -saveimage = 儲存圖像 +wave.guardianwarn = Guardian approaching in [accent]{0}[] waves. +wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave. +loadimage = 載入圖片 +saveimage = 儲存圖片 unknown = 未知 custom = 自訂 builtin = 内建 -map.delete.confirm = 確認要刪除地圖嗎?此操作無法撤回! +map.delete.confirm = 確認要刪除地圖嗎?此動作無法復原! map.random = [accent]隨機地圖 map.nospawn = 這個地圖沒有核心!請在編輯器中添加一個[accent]橘色[]的核心。 map.nospawn.pvp = 這個地圖沒有敵對核心讓玩家重生!請在編輯器中添加一個[scarlet]不是橘色[]的核心。 map.nospawn.attack = 這個地圖沒有敵人核心可以攻擊!請在編輯器中添加一個[scarlet]紅色[]的核心。 -map.invalid = 地圖載入錯誤:地圖可能已經損壞。 +map.invalid = 地圖載入錯誤:地圖可能已經損毀。 workshop.update = 更新項目 -workshop.error = 提取工作坊詳細信息時出錯: {0} -map.publish.confirm = 您確定要發布此地圖嗎?\n\n[lightgray]首先請先確定您同意Steam工坊 EULA協定,否則您的地圖將不會顯示! -workshop.menu = 選擇您要對此項目執行的操作。 -workshop.info = 項目信息 -changelog = 變更日誌(可選): +workshop.error = 擷取工作坊詳細資訊時出錯: {0} +map.publish.confirm = 您確定要發布此地圖嗎?\n\n[lightgray]首先請先確定您同意 Steam 工作坊的 EULA,否則您的地圖將不會顯示! +workshop.menu = 選擇您要對此項目執行的動作。 +workshop.info = 項目資訊 +changelog = 變動紀錄(選擇性): eula = Steam EULA -missing = 此項目已被刪除或移動。\n[lightgray]工作坊列表現在已自動取消鏈接。 -publishing = [accent]發佈中... -publish.confirm = 您確定要發布嗎?\n\n[lightgray]首先確定您同意Workshop EULA,否則您的項目將不會顯示! -publish.error = 發佈項目時出錯: {0} -steam.error = Steam 服務初始化失敗.\n錯誤: {0} +missing = 此項目已被刪除或移動。\n[lightgray]工作坊列表現在已自動取消連結。 +publishing = [accent]發佈中…… +publish.confirm = 您確定要發布嗎?\n\n[lightgray]首先確定您同意 Workshop EULA,否則您的項目將不會顯示! +publish.error = 發佈項目時發生問題:{0} +steam.error = Steam 服務初始化失敗。\n錯誤:{0} editor.brush = 粉刷 editor.openin = 在編輯器中開啟 @@ -328,6 +331,7 @@ editor.generation = 篩選器: editor.ingame = 在遊戲中編輯 editor.publish.workshop = 在工作坊上發佈 editor.newmap = 新地圖 +editor.center = Center workshop = 工作坊 waves.title = 波次 waves.remove = 移除 @@ -339,30 +343,30 @@ waves.shields = 護盾/波次 waves.to = 至 waves.guardian = 守衛者 waves.preview = 預覽 -waves.edit = 編輯... -waves.copy = 複製到剪貼板 -waves.load = 從剪貼板加載 -waves.invalid = 剪貼板中的波次無效。 +waves.edit = 編輯…… +waves.copy = 複製到剪貼簿 +waves.load = 從剪貼簿載入 +waves.invalid = 剪貼簿中的波次無效。 waves.copied = 波次已被複製。 -waves.none = 無自定義敵人.\n請注意,空佈局將自動替換為預設佈局。 +waves.none = 無自訂敵人。\n請注意,空佈局將自動替換為預設佈局。 -wavemode.counts = counts -wavemode.totals = totals -wavemode.health = health +wavemode.counts = 數量 +wavemode.totals = 總數 +wavemode.health = 生命值 -editor.default = [lightgray]〈默認〉 -details = 詳情... -edit = 編輯... +editor.default = [lightgray](預設) +details = 詳細資訊…… +edit = 編輯…… editor.name = 名稱: editor.spawn = 重生單位 editor.removeunit = 移除單位 editor.teams = 隊伍 -editor.errorload = 加載文件時出錯:\n[accent]{0} -editor.errorsave = 保存文件時出錯:\n[accent]{0} -editor.errorimage = 這是一個圖像檔,而不是地圖。不要更改副檔名使它可用。\n\n如果要匯入地形圖像檔,請使用編輯器中的「匯入地形圖像檔」按鈕。 -editor.errorlegacy = 此地圖太舊,並使用不支持的舊地圖格式。 -editor.errornot = 這不是一個地圖檔案。 -editor.errorheader = 此地圖檔案無效或已損壞。 +editor.errorload = 載入檔案時發生問題:\n[accent]{0} +editor.errorsave = 儲存檔案時發生問題:\n[accent]{0} +editor.errorimage = 這是圖片檔,而非地圖。不要試圖修改副檔名讓它可以使用。\n\n如果要匯入地形圖片檔,請使用編輯器中的「匯入地形圖片檔」按鈕。 +editor.errorlegacy = 此地圖太舊,並使用不支援的舊地圖格式。 +editor.errornot = 這不是地圖檔。 +editor.errorheader = 此地圖檔無效或已損毀。 editor.errorname = 地圖沒有定義名稱。 editor.update = 更新 editor.randomize = 隨機化 @@ -372,23 +376,23 @@ editor.resize = 調整大小 editor.loadmap = 載入地圖 editor.savemap = 儲存地圖 editor.saved = 已儲存! -editor.save.noname = 您的地圖沒有名稱!在「地圖資訊」畫面設置一個名稱。 -editor.save.overwrite = 您的地圖覆寫一個內建的地圖!在「地圖信息」畫面設置一個不同的名稱。 -editor.import.exists = [scarlet]匯入失敗:[]一個叫「{0}」的內建地圖已存在! -editor.import = 匯入... +editor.save.noname = 您的地圖沒有名稱!在「地圖資訊」畫面設定一個名稱。 +editor.save.overwrite = 您的地圖覆寫了內建的地圖!在「地圖資訊」畫面設定其他名稱。 +editor.import.exists = [scarlet]匯入失敗:[]叫「{0}」的內建地圖已存在! +editor.import = 匯入…… editor.importmap = 匯入地圖 -editor.importmap.description = 匯入一個已存在的地圖 +editor.importmap.description = 匯入已存在的地圖 editor.importfile = 匯入檔案 -editor.importfile.description = 匯入一個外部的地圖檔案 -editor.importimage = 匯入地形圖像檔 -editor.importimage.description = 匯入一個外部的地形圖像檔 -editor.export = 匯出... +editor.importfile.description = 匯入外部的地圖檔案 +editor.importimage = 匯入地形圖片檔 +editor.importimage.description = 匯入外部的地形圖片檔 +editor.export = 匯出…… editor.exportfile = 匯出檔案 -editor.exportfile.description = 匯出一個地圖檔案 -editor.exportimage = 匯出地形圖像檔 -editor.exportimage.description = 匯出一個地形圖像檔 -editor.loadimage = 載入圖像 -editor.saveimage = 儲存圖像 +editor.exportfile.description = 匯出地圖檔 +editor.exportimage = 匯出地形圖片檔 +editor.exportimage.description = 匯出地形圖片檔 +editor.loadimage = 載入圖片 +editor.saveimage = 儲存圖片 editor.unsaved = [scarlet]尚未儲存變更![]\n您確定要退出嗎? editor.resizemap = 調整地圖大小 editor.mapname = 地圖名稱: @@ -404,18 +408,19 @@ toolmode.replaceall.description = 取代地圖中的所有方塊。 toolmode.orthogonal = 垂直 toolmode.orthogonal.description = 僅繪製在垂直線上。 toolmode.square = 正方形 -toolmode.square.description = 正方形筆刷. +toolmode.square.description = 正方形筆刷。 toolmode.eraseores = 清除礦物 toolmode.eraseores.description = 僅清除礦物。 toolmode.fillteams = 填充團隊 -toolmode.fillteams.description = 填充團隊而不是方塊。 +toolmode.fillteams.description = 填充團隊而非方塊。 toolmode.drawteams = 繪製團隊 -toolmode.drawteams.description = 繪製團隊而不是方塊。 +toolmode.drawteams.description = 繪製團隊而非方塊。 -filters.empty = [lightgray]沒有過濾器!使用下面的按鈕添加一個。 +filters.empty = [lightgray]沒有過濾器!使用下面的按鈕新增一個。 filter.distort = 扭曲 filter.noise = 雜訊 filter.enemyspawn = 敵人重生選擇 +filter.spawnpath = Path To Spawn filter.corespawn = 核心選擇 filter.median = 平均數 filter.oremedian = 礦石平均數 @@ -440,6 +445,7 @@ filter.option.amount = 數量 filter.option.block = 方塊 filter.option.floor = 地板 filter.option.flooronto = 目標地板 +filter.option.target = Target filter.option.wall = 牆 filter.option.ore = 礦石 filter.option.floor2 = 次要地板 @@ -455,38 +461,32 @@ campaign = 戰役 load = 載入 save = 儲存 fps = FPS:{0} -ping = 延遲:{0}ms +ping = 延遲:{0}毫秒 language.restart = 請重新啟動遊戲以使選取的語言生效。 settings = 設定 tutorial = 教學 -tutorial.retake = 重置教學 +tutorial.retake = 重設教學 editor = 地圖編輯器 mapeditor = 地圖編輯器 abandon = 放棄 -abandon.text = 此區域及其所有資源將會丟失給敵人。 +abandon.text = 此區域及其所有資源將會放棄,並給敵人使用。 locked = 鎖定 complete = [lightgray]完成: requirement.wave = 在{1}到達第{0}波 requirement.core = 在{0}摧毀敵人核心 -requirement.research = Research {0} -requirement.capture = Capture {0} -resume = 繼續區域:\n[lightgray]{0} +requirement.research = 研究 {0} +requirement.capture = 捕獲 {0} bestwave = [lightgray]最高波次:{0} -launch = < 發射 > -launch.text = Launch -launch.title = 發射成功 -launch.next = [lightgray]下次的機會於波次{0} -launch.unable2 = [scarlet]無法發射核心。[] -launch.confirm = 這將發射核心中的所有資源。\n你將無法返回這個基地。 -launch.skip.confirm = 如果您現在跳過,您將無法發射核心直到下一次的可發射波數。 +launch.text = 發射 +research.multiplayer = Only the host can research items. uncover = 探索 -configure = 配置裝載 -loadout = Loadout -resources = Resources -bannedblocks = 禁用方塊 +configure = 設定 +loadout = 裝載 +resources = 資源 +bannedblocks = 停用方塊 addall = 全部加入 -launch.destination = Destination: {0} +launch.destination = 目的地:{0} configure.invalid = 數值必須介於 0 到 {0}。 zone.unlocked = [lightgray]{0}已解鎖。 zone.requirement.complete = 到達波次{0}:\n滿足{1}區域要求。 @@ -494,75 +494,85 @@ zone.resources = [lightgray]檢測到的資源: zone.objective = [lightgray]目標: [accent]{0} zone.objective.survival = 生存 zone.objective.attack = 摧毀敵人核心 -add = 新增... +add = 新增…… boss.health = 頭目血量 connectfail = [crimson]伺服器連線錯誤:[accent]{0} -error.unreachable = 無法到達伺服器。請確認位址是否正確? -error.invalidaddress = 無效的位址。 -error.timedout = 連線超時!\n確保伺服器設置了連接埠轉發,並且位址正確! -error.mismatch = 封包錯誤:\n客戶端/伺服器版本可能不匹配。\n確保客戶端和伺服器都有最新版本的Mindustry! -error.alreadyconnected = 已連接。 +error.unreachable = 無法連線到伺服器。請確認位置是否正確? +error.invalidaddress = 無效的位置。 +error.timedout = 連線逾時!\n確保伺服器設置了連接埠轉發且位置正確! +error.mismatch = 封包錯誤:\n客戶端/伺服器版本可能不相符。\n確保客戶端和伺服器都有最新版本的 Mindustry! +error.alreadyconnected = 已連線。 error.mapnotfound = 找不到地圖! -error.io = 網絡輸出入錯誤。 -error.any = 未知網絡錯誤。 -error.bloom = 初始化特效失敗.\n您的設備可能不支援它 +error.io = 網路錯誤。 +error.any = 未知網路錯誤。 +error.bloom = 初始化特效失敗。\n您的裝置可能不支援 -weather.rain.name = Rain -weather.snow.name = Snow -weather.sandstorm.name = Sandstorm -weather.sporestorm.name = Sporestorm +weather.rain.name = 雨 +weather.snow.name = 雪 +weather.sandstorm.name = 沙塵暴 +weather.sporestorm.name = 孢子風暴 +weather.fog.name = Fog -sectors.unexplored = [lightgray]Unexplored -sectors.resources = Resources: -sectors.production = Production: -sectors.stored = Stored: -sectors.resume = Resume -sectors.launch = Launch -sectors.select = Select -sectors.nonelaunch = [lightgray]none (sun) +sectors.unexplored = [lightgray]未探索 +sectors.resources = 資源: +sectors.production = 生產: +sectors.stored = 儲存: +sectors.resume = 繼續 +sectors.launch = 發射 +sectors.select = 選取 +sectors.nonelaunch = [lightgray]無(太陽) +sectors.rename = Rename Sector +sector.missingresources = [scarlet]Insufficient Core Resources -sector.groundZero.name = Ground Zero -sector.craters.name = The Craters -sector.frozenForest.name = Frozen Forest -sector.ruinousShores.name = Ruinous Shores -sector.stainedMountains.name = Stained Mountains -sector.desolateRift.name = Desolate Rift -sector.nuclearComplex.name = Nuclear Production Complex -sector.overgrowth.name = Overgrowth -sector.tarFields.name = Tar Fields -sector.saltFlats.name = Salt Flats -sector.fungalPass.name = Fungal Pass +planet.serpulo.name = Serpulo +planet.sun.name = Sun -sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. -sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. -sector.saltFlats.description = On the outskirts of the desert lie the Salt Flats. Few resources can be found in this location.\n\nThe enemy has erected a resource storage complex here. Eradicate their core. Leave nothing standing. -sector.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills. -sector.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology. -sector.stainedMountains.description = Further inland lie the mountains, yet untainted by spores.\nExtract the abundant titanium in this area. Learn how to use it.\n\nThe enemy presence is greater here. Do not give them time to send their strongest units. -sector.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build Titan units. Destroy it. Reclaim that which was lost. -sector.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible. -sector.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks. -sector.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers. -sector.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores. +sector.groundZero.name = 原點 +sector.craters.name = 火山島 +sector.frozenForest.name = 冰封森林 +sector.ruinousShores.name = 廢墟海岸 +sector.stainedMountains.name = 彩繪山 +sector.desolateRift.name = 荒谷 +sector.nuclearComplex.name = 核能生產複合體 +sector.overgrowth.name = 雜草叢生 +sector.tarFields.name = 油田 +sector.saltFlats.name = 鹽灘 +sector.fungalPass.name = 真菌橫行 + +sector.groundZero.description = 再次開始的最佳位置。敵人威脅程度低。資源少。\n盡可能地採集鉛與銅。\n繼續前進。 +sector.frozenForest.description = 即使是在如此靠近山脈的地方,孢子也已經擴散了。如此低溫也無法永遠遏止它們。\n\n開始冒險發電。建造火力發電機。並學習使用修理單位。 +sector.saltFlats.description = 鹽灘在沙漠的外圍。此處資源不多。\n\n敵人已在此建立了一座資源倉庫。剷除他們的核心。不要留下任何東西。 +sector.craters.description = 在曾發生過古代戰爭的火山口積了很多水。開墾這個區域。採集沙子。煉製玻璃。抽水冷卻砲塔與鑽頭。 +sector.ruinousShores.description = 越過廢棄物就是海岸線。此處曾設有海岸防禦陣線。但剩下的不多。只有最基本的防禦結構沒有損毀,其他的一切都已然變為廢墟。\n繼續向外擴展。重新發現技術。 +sector.stainedMountains.description = 還未受孢子污染的山脈向內陸延伸。\n在此區域開採鈦金屬。學習如何使用它。\n\n這裡的敵人更為強大。不要讓他們有以最強大武力攻擊的機會。 +sector.overgrowth.description = 此區域雜草叢生,離孢子的源頭很近。\n敵人在此建立了前哨站。建造泰坦單位。摧毀它。然後找回遺失的東西。 +sector.tarFields.description = 產油區的外圍,在山脈與沙漠之間。少數有油料儲備的地區。\n雖然看似被廢棄,但此區域附近仍有一些危險的敵軍。不要小看他們。\n\n[lightgray]如果可以的話,請研究石油加工科技。 +sector.desolateRift.description = 非常危險的區域。資源豐富,但空間狹小。有高破壞風險。盡快離開。不要被敵人的攻擊間距太長而被愚弄。 +sector.nuclearComplex.description = 曾是釷的生產與加工設施,但現在已成廢墟。\n[lightgray]研究釷及其許多用途。\n\n敵人非常多,不斷搜尋可攻擊的對象。 +sector.fungalPass.description = 高山與滿是孢子的低谷間的過渡區域。這裡有敵人的小型偵察基地。\n摧毀它。\n使用匕首機甲與爬行機甲。拿下兩個核心。 settings.language = 語言 -settings.data = 遊戲數據 +settings.data = 遊戲資料 settings.reset = 重設為預設設定 settings.rebind = 重新綁定 settings.resetKey = 重設按鍵 -settings.controls = 操作 +settings.controls = 控制 settings.game = 遊戲 settings.sound = 音效 settings.graphics = 圖形 -settings.cleardata = 清除遊戲數據... -settings.clear.confirm = 您確定要清除數據嗎?\n此操作無法撤回! -settings.clearall.confirm = [scarlet]警告![]\n這將清除所有數據,包括存檔、地圖、解鎖和熱鍵綁定。\n按「是」後,遊戲將刪除所有數據並自動退出。 -settings.clearsaves.confirm = Are you sure you want to clear all your saves? -settings.clearsaves = Clear Saves -paused = [accent]〈已暫停〉 +settings.cleardata = 清除遊戲資料…… +settings.clear.confirm = 您確定要清除資料嗎?\n此動作無法復原! +settings.clearall.confirm = [scarlet]警告![]\n這會清除所有資料,包括存檔、地圖、解鎖項目和快捷鍵綁定。\n按「是」後,遊戲將刪除所有資料並自動結束。 +settings.clearsaves.confirm = 您確定您想要清除所有存檔嗎? +settings.clearsaves = 清除存檔 +settings.clearresearch = Clear Research +settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research? +settings.clearcampaignsaves = Clear Campaign Saves +settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves? +paused = [accent](已暫停) clear = 清除 -banned = [scarlet]已被封禁 +banned = [scarlet]已被封鎖 unplaceable.sectorcaptured = [scarlet]需要已占領的地區 yes = 是 no = 否 @@ -570,12 +580,14 @@ info.title = 資訊 error.title = [crimson]發生錯誤 error.crashtitle = 發生錯誤 unit.nobuild = [scarlet]單位不能建造 +lastaccessed = [lightgray]Last Accessed: {0} +block.unknown = [lightgray]??? + stat.input = 輸入 stat.output = 輸出 stat.booster = 強化 stat.tiles = 需求方塊 stat.affinities = 親和方塊 -block.unknown = [lightgray]??? stat.powercapacity = 蓄電量 stat.powershot = 能量/射擊 stat.damage = 傷害 @@ -584,16 +596,17 @@ stat.targetsground = 攻擊地面目標 stat.itemsmoved = 移動速度 stat.launchtime = 發射間隔 stat.shootrange = 範圍 -stat.size = 尺寸 -stat.displaysize = Display Size +stat.size = 大小 +stat.displaysize = 顯示大小 stat.liquidcapacity = 液體容量 stat.powerrange = 輸出範圍 -stat.linkrange = Link Range -stat.instructions = Instructions -stat.powerconnections = 最大連接數 +stat.linkrange = 連結範圍 +stat.instructions = 介紹 +stat.powerconnections = 最大連結數 stat.poweruse = 能量使用 stat.powerdamage = 能量/傷害 stat.itemcapacity = 物品容量 +stat.memorycapacity = Memory Capacity stat.basepowergeneration = 基礎能量生產 stat.productiontime = 生產時間 stat.repairtime = 方塊完全修復時間 @@ -601,29 +614,52 @@ stat.speedincrease = 速度提升 stat.range = 範圍 stat.drilltier = 可鑽取礦物 stat.drillspeed = 基本鑽取速度 -stat.boosteffect = 提升效應 +stat.boosteffect = 加速效果 stat.maxunits = 最大活躍單位 stat.health = 耐久度 stat.buildtime = 建設時間 -stat.maxconsecutive = Max Consecutive +stat.maxconsecutive = 最大連續 stat.buildcost = 建造成本 stat.inaccuracy = 誤差 stat.shots = 射擊數 stat.reload = 射擊次數/秒 stat.ammo = 彈藥 -stat.shieldhealth = Shield Health -stat.cooldowntime = Cooldown Time +stat.shieldhealth = 護盾生命值 +stat.cooldowntime = 冷確時間 +stat.explosiveness = Explosiveness +stat.basedeflectchance = Base Deflect Chance +stat.lightningchance = Lightning Chance +stat.lightningdamage = Lightning Damage +stat.flammability = Flammability +stat.radioactivity = Radioactivity +stat.heatcapacity = HeatCapacity +stat.viscosity = Viscosity +stat.temperature = Temperature +stat.speed = Speed +stat.buildspeed = Build Speed +stat.minespeed = Mine Speed +stat.minetier = Mine Tier +stat.payloadcapacity = Payload Capacity +stat.commandlimit = Command Limit +stat.abilities = Abilities + +ability.forcefield = Force Field +ability.repairfield = Repair Field +ability.statusfield = Status Field +ability.unitspawn = {0} Factory +ability.shieldregenfield = Shield Regen Field bar.drilltierreq = 需要更好的鑽頭 -bar.noresources = Missing Resources -bar.corereq = Core Base Required +bar.noresources = 缺少資源 +bar.corereq = 核心基礎需求 bar.drillspeed = 鑽頭速度:{0}/秒 -bar.pumpspeed = 液體泵送速度:{0}/s +bar.pumpspeed = 液體泵送速度:{0}/秒 bar.efficiency = 效率:{0}% bar.powerbalance = 能量變化:{0} bar.powerstored = 能量存量: {0}/{1} bar.poweramount = 能量:{0} bar.poweroutput = 能量輸出:{0} +bar.powerlines = Connections: {0}/{1} bar.items = 物品:{0} bar.capacity = 容量: {0} bar.unitcap = {0} {1}/{2} @@ -635,19 +671,24 @@ bar.progress = 建造進度 bar.input = 輸入 bar.output = 輸出 +units.processorcontrol = [lightgray]Processor Controlled + bullet.damage = [stat]{0}[lightgray]傷害 bullet.splashdamage = [stat]{0}[lightgray]範圍傷害 ~[stat] {1}[lightgray]格 bullet.incendiary = [stat]燃燒 -bullet.homing = [stat]追踪 +bullet.homing = [stat]追蹤 bullet.shock = [stat]電擊 bullet.frag = [stat]破片彈 bullet.knockback = [stat]{0}[lightgray]擊退 +bullet.pierce = [stat]{0}[lightgray]x pierce +bullet.infinitepierce = [stat]pierce bullet.freezing = [stat]冷凍 bullet.tarred = [stat]焦油 bullet.multiplier = [stat]{0}[lightgray]×彈藥倍數 bullet.reload = [stat]{0}[lightgray]×射擊速率 unit.blocks = 方塊 +unit.blockssquared = blocks² unit.powersecond = 能量單位/秒 unit.liquidsecond = 液體單位/秒 unit.itemssecond = 物品/秒 @@ -655,22 +696,22 @@ unit.liquidunits = 液體單位 unit.powerunits = 能量單位 unit.degrees = 度 unit.seconds = 秒 -unit.minutes = mins +unit.minutes = 分 unit.persecond = /秒 -unit.perminute = /min +unit.perminute = /分 unit.timesspeed = ×速度 unit.percent = % -unit.shieldhealth = shield health +unit.shieldhealth = 護盾生命值 unit.items = 物品 -unit.thousands = k -unit.millions = mil -unit.billions = b +unit.thousands = 千 +unit.millions = 百萬 +unit.billions = 十億 category.general = 一般 category.power = 能量 category.liquids = 液體 category.items = 物品 category.crafting = 需求 -category.shooting = 射擊 +category.function = Function category.optional = 可選的強化 setting.landscape.name = 鎖定水平畫面 setting.shadows.name = 陰影 @@ -679,19 +720,18 @@ setting.linear.name = 線性過濾 setting.hints.name = 提示 setting.flow.name = 顯示資源輸送速度[scarlet] setting.buildautopause.name = 自動暫停建築 -setting.mapcenter.name = Auto Center Map To Player setting.animatedwater.name = 液體動畫 setting.animatedshields.name = 護盾動畫 -setting.antialias.name = 消除鋸齒[lightgray](需要重啟遊戲)[] -setting.playerindicators.name = 盟友指示標 -setting.indicators.name = 敵方指示標 +setting.antialias.name = 消除鋸齒[lightgray](需要重新啟動遊戲)[] +setting.playerindicators.name = 盟友標示 +setting.indicators.name = 敵方標示 setting.autotarget.name = 自動射擊 setting.keyboard.name = 滑鼠及鍵盤控制 setting.touchscreen.name = 觸控螢幕控制 setting.fpscap.name = 最大FPS setting.fpscap.none = 無 setting.fpscap.text = {0}FPS -setting.uiscale.name = UI縮放[lightgray] (需要重啟遊戲)[] +setting.uiscale.name = 使用者介面縮放[lightgray](需要重新啟動遊戲)[] setting.swapdiagonal.name = 預設對角線放置 setting.difficulty.training = 訓練 setting.difficulty.easy = 簡單 @@ -710,14 +750,13 @@ setting.seconds = {0}秒 setting.blockselecttimeout.name = 跳過方塊建造時距 setting.milliseconds = {0}毫秒 setting.fullscreen.name = 全螢幕 -setting.borderlesswindow.name = 無邊框窗口[lightgray](可能需要重啟遊戲) +setting.borderlesswindow.name = 無邊框視窗[lightgray](可能需要重新啟動遊戲) setting.fps.name = 顯示FPS與Ping -setting.smoothcamera.name = Smooth Camera -setting.blockselectkeys.name = 顯示方塊選擇快捷鍵 +setting.smoothcamera.name = 平滑攝影機 setting.vsync.name = 垂直同步 setting.pixelate.name = 像素化 setting.minimap.name = 顯示小地圖 -setting.coreitems.name = Display Core Items (WIP) +setting.coreitems.name = 顯示核心時間(開發中) setting.position.name = 顯示玩家位置 setting.musicvol.name = 音樂音量 setting.atmosphere.name = 顯示星球大氣層 @@ -725,37 +764,37 @@ setting.ambientvol.name = 環境音量 setting.mutemusic.name = 靜音 setting.sfxvol.name = 音效音量 setting.mutesound.name = 靜音 -setting.crashreport.name = 發送匿名崩潰報告 +setting.crashreport.name = 傳送匿名當機回報 setting.savecreate.name = 自動建立存檔 setting.publichost.name = 公開遊戲可見度 setting.playerlimit.name = 玩家數限制 setting.chatopacity.name = 聊天框不透明度 -setting.lasersopacity.name = 激光不透明度 +setting.lasersopacity.name = 雷射不透明度 setting.bridgeopacity.name = 橋透明度 -setting.playerchat.name = 在遊戲中顯示聊天框 -public.confirm = 您想公開遊戲嗎?\n[accent]任何人都可以加入您的遊戲。\n[lightgray]以後可以在“設置”->“遊戲”->“公開遊戲可見度”中進行更改。 +setting.playerchat.name = 在遊戲中顯示聊天視窗 +public.confirm = 您想公開遊戲嗎?\n[accent]任何人都可以加入您的遊戲。\n[lightgray]之後可以在「設定」→「遊戲」→「公開遊戲可見度」中進行更改。 public.beta = 請注意,該遊戲的Beta版本無法公開遊戲大廳。 -uiscale.reset = UI縮放已變更\n按下"確定"確認這個比例\n[scarlet][accent] {0}[] 秒後...退出並還原設定 +uiscale.reset = 使用者介面縮放已變更\n按下「確定」確認這個比例\n[scarlet][accent] {0}[] 秒後退出並還原設定 uiscale.cancel = 取消並退出 setting.bloom.name = 粒子特效 keybind.title = 重新綁定按鍵 -keybinds.mobile = [scarlet]此處的大多數快捷鍵在移動設備上均不起作用。僅支援基本移動。 +keybinds.mobile = [scarlet]此處的大多數快捷鍵在行動裝置上均無法運作。僅支援基本移動。 category.general.name = 一般 category.view.name = 查看 category.multiplayer.name = 多人 -category.blocks.name = Block Select +category.blocks.name = 選取方塊 command.attack = 攻擊 command.rally = 集結 command.retreat = 撤退 -command.idle = Idle +command.idle = 閒置 placement.blockselectkeys = \n[lightgray]按鍵:[{0}, keybind.respawn.name = 重生 keybind.control.name = 控制單位 keybind.clear_building.name = 清除建築指令 -keybind.press = 按一下按鍵... -keybind.press.axis = 按一下軸向或按鍵... +keybind.press = 按一下按鍵…… +keybind.press.axis = 按一下軸向或按鍵…… keybind.screenshot.name = 地圖截圖 -keybind.toggle_power_lines.name = 顯示能量激光 +keybind.toggle_power_lines.name = 顯示能量雷射 keybind.toggle_block_status.name = 開啟方塊狀態顯示 keybind.move_x.name = 水平移動 keybind.move_y.name = 垂直移動 @@ -788,24 +827,24 @@ keybind.diagonal_placement.name = 對角線放置 keybind.pick.name = 選擇方塊 keybind.break_block.name = 移除方塊 keybind.deselect.name = 取消選取 -keybind.pickupCargo.name = Pickup Cargo -keybind.dropCargo.name = Drop Cargo -keybind.command.name = Command +keybind.pickupCargo.name = 撿起貨物 +keybind.dropCargo.name = 丟棄貨物 +keybind.command.name = 指令 keybind.shoot.name = 射擊 keybind.zoom.name = 縮放 keybind.menu.name = 主選單 keybind.pause.name = 暫停遊戲 -keybind.pause_building.name = 暫停/恢復建造 +keybind.pause_building.name = 暫停/繼續建造 keybind.minimap.name = 小地圖 keybind.chat.name = 聊天 keybind.player_list.name = 玩家列表 keybind.console.name = 終端機 keybind.rotate.name = 旋轉 -keybind.rotateplaced.name = 旋轉現有(按住) +keybind.rotateplaced.name = 旋轉現有(按住) keybind.toggle_menus.name = 切換畫面 keybind.chat_history_prev.name = 之前的聊天記錄 keybind.chat_history_next.name = 之後的聊天記錄 -keybind.chat_scroll.name = 聊天記錄滾動 +keybind.chat_scroll.name = 聊天記錄捲動 keybind.drop_unit.name = 放下單位 keybind.zoom_minimap.name = 縮放小地圖 mode.help.title = 模式說明 @@ -822,13 +861,14 @@ mode.custom = 自訂規則 rules.infiniteresources = 無限資源 rules.reactorexplosions = 反應爐爆炸 +rules.schematic = Schematics Allowed rules.wavetimer = 波次時間 rules.waves = 波次 rules.attack = 攻擊模式 -rules.buildai = AI Building +rules.buildai = 電腦建築 rules.enemyCheat = 電腦無限資源 rules.blockhealthmultiplier = 建築物耐久度倍數 -rules.blockdamagemultiplier = Block Damage Multiplier +rules.blockdamagemultiplier = 建築物傷害倍數 rules.unitbuildspeedmultiplier = 單位建設速度倍數 rules.unithealthmultiplier = 單位生命值倍數 rules.unitdamagemultiplier = 單位傷害倍數 @@ -838,8 +878,8 @@ rules.buildcostmultiplier = 建設成本倍數 rules.buildspeedmultiplier = 建設速度倍數 rules.deconstructrefundmultiplier = 拆除資源返還比例 rules.waitForWaveToEnd = 等待所有敵人毀滅才開始下一波次 -rules.dropzoneradius = 空降區半徑:[lightgray](格) -rules.unitammo = Units Require Ammo +rules.dropzoneradius = 空降區半徑:[lightgray](格) +rules.unitammo = 單位需要彈藥 rules.title.waves = 波次 rules.title.resourcesbuilding = 資源與建築 rules.title.enemy = 敵人 @@ -847,17 +887,19 @@ rules.title.unit = 單位 rules.title.experimental = 實驗中 rules.title.environment = 環境 rules.lighting = 光照 -rules.fire = Fire -rules.explosions = Block/Unit Explosion Damage +rules.enemyLights = Enemy Lights +rules.fire = 火 +rules.explosions = 方塊/單位爆炸傷害 rules.ambientlight = 環境光照 -rules.weather = Weather -rules.weather.frequency = Frequency: -rules.weather.duration = Duration: +rules.weather = 天氣 +rules.weather.frequency = 頻率: +rules.weather.duration = 持續時間: content.item.name = 物品 content.liquid.name = 液體 content.unit.name = 單位 content.block.name = 方塊 + item.copper.name = 銅 item.lead.name = 鉛 item.coal.name = 煤炭 @@ -870,7 +912,7 @@ item.phase-fabric.name = 相織布 item.surge-alloy.name = 波動合金 item.spore-pod.name = 孢子莢 item.sand.name = 沙 -item.blast-compound.name = 爆炸混合物 +item.blast-compound.name = 爆炸化合物 item.pyratite.name = 火焰彈 item.metaglass.name = 鋼化玻璃 item.scrap.name = 廢料 @@ -879,32 +921,15 @@ liquid.slag.name = 熔渣 liquid.oil.name = 原油 liquid.cryofluid.name = 冷凍液 -item.explosiveness = [lightgray]爆炸性:{0}% -item.flammability = [lightgray]易燃性:{0}% -item.radioactivity = [lightgray]放射性:{0}% - -unit.health = [lightgray]生命值:{0} -unit.speed = [lightgray]速度:{0} -unit.weapon = [lightgray]武器: {0} -unit.itemcapacity = [lightgray]物品容量: {0} -unit.minespeed = [lightgray]採礦速度: {0}% -unit.minepower = [lightgray]採礦能力: {0} -unit.ability = [lightgray]能力: {0} -unit.buildspeed = [lightgray]建造速度: {0}% - -liquid.heatcapacity = [lightgray]熱容量:{0} -liquid.viscosity = [lightgray]粘性:{0} -liquid.temperature = [lightgray]溫度:{0} - unit.dagger.name = 匕首機甲 -unit.mace.name = Mace +unit.mace.name = 權杖 unit.fortress.name = 要塞 -unit.nova.name = Nova -unit.pulsar.name = Pulsar -unit.quasar.name = Quasar +unit.nova.name = 超新星 +unit.pulsar.name = 脈衝星 +unit.quasar.name = 類星體 unit.crawler.name = 爬行機甲 unit.atrax.name = Atrax -unit.spiroct.name = Spiroct +unit.spiroct.name = 尖刺 unit.arkyid.name = Arkyid unit.toxopid.name = Toxopid unit.flare.name = Flare @@ -930,28 +955,29 @@ unit.reign.name = Reign unit.vela.name = Vela unit.corvus.name = Corvus -block.resupply-point.name = Resupply Point -block.parallax.name = Parallax +block.resupply-point.name = 補給點 +block.parallax.name = 視差 block.cliff.name = 峭壁 block.sand-boulder.name = 沙礫 block.grass.name = 草 block.slag.name = 熔渣 +block.space.name = Space block.salt.name = 鹽 -block.salt-wall.name = Salt Wall +block.salt-wall.name = 鹽牆 block.pebbles.name = 卵石 block.tendrils.name = 卷鬚 -block.sand-wall.name = Sand Wall +block.sand-wall.name = 沙牆 block.spore-pine.name = 孢子松 -block.spore-wall.name = Spore Wall -block.boulder.name = Boulder -block.snow-boulder.name = Snow Boulder +block.spore-wall.name = 孢子牆 +block.boulder.name = 巨石 +block.snow-boulder.name = 雪巨石 block.snow-pine.name = 雪松 block.shale.name = 頁岩 block.shale-boulder.name = 頁岩巨石 block.moss.name = 苔蘚 block.shrubs.name = 灌木 block.spore-moss.name = 孢子苔蘚 -block.shale-wall.name = Shale Wall +block.shale-wall.name = 頁岩牆 block.scrap-wall.name = 廢牆 block.scrap-wall-large.name = 大型廢牆 block.scrap-wall-huge.name = 巨型廢牆 @@ -979,17 +1005,18 @@ block.craters.name = 隕石坑 block.sand-water.name = 沙水 block.darksand-water.name = 黑沙水 block.char.name = 燒焦 -block.dacite.name = Dacite -block.dacite-wall.name = Dacite Wall +block.dacite.name = 英安岩 +block.dacite-wall.name = 英安岩牆 +block.dacite-boulder.name = Dacite Boulder block.ice-snow.name = 冰雪 -block.stone-wall.name = Stone Wall -block.ice-wall.name = Ice Wall -block.snow-wall.name = Snow Wall -block.dune-wall.name = Dune Wall +block.stone-wall.name = 石牆 +block.ice-wall.name = 冰牆 +block.snow-wall.name = 雪牆 +block.dune-wall.name = 沙丘牆 block.pine.name = 松樹 -block.dirt.name = Dirt -block.dirt-wall.name = Dirt Wall -block.mud.name = Mud +block.dirt.name = 土 +block.dirt-wall.name = 土牆 +block.mud.name = 泥 block.white-tree-dead.name = 枯萎白樹 block.white-tree.name = 白樹 block.spore-cluster.name = 孢子簇 @@ -1061,7 +1088,7 @@ block.differential-generator.name = 差動發電機 block.impact-reactor.name = 衝擊反應堆 block.mechanical-drill.name = 機械鑽頭 block.pneumatic-drill.name = 氣動鑽頭 -block.laser-drill.name = 激光鑽頭 +block.laser-drill.name = 雷射鑽頭 block.water-extractor.name = 水提取器 block.cultivator.name = 培養槽 block.conduit.name = 管線 @@ -1073,8 +1100,9 @@ block.liquid-void.name = 液體虛空 block.power-void.name = 能量虛空 block.power-source.name = 無限能量源 block.unloader.name = 裝卸器 -block.vault.name = 存儲庫 +block.vault.name = 儲存庫 block.wave.name = 波浪砲 +block.tsunami.name = Tsunami block.swarmer.name = 群集砲 block.salvo.name = 齊射砲 block.ripple.name = 波紋砲 @@ -1114,31 +1142,33 @@ block.arc.name = 電弧砲 block.rtg-generator.name = 放射性同位素熱發電機 block.spectre.name = 鬼影砲 block.meltdown.name = 熔毀砲 +block.foreshadow.name = Foreshadow block.container.name = 容器 block.launch-pad.name = 小型發射台 block.launch-pad-large.name = 大型發射台 -block.segment.name = Segment -block.command-center.name = Command Center -block.ground-factory.name = Ground Factory -block.air-factory.name = Air Factory -block.naval-factory.name = Naval Factory -block.additive-reconstructor.name = Additive Reconstructor -block.multiplicative-reconstructor.name = Multiplicative Reconstructor -block.exponential-reconstructor.name = Exponential Reconstructor -block.tetrative-reconstructor.name = Tetrative Reconstructor -block.payload-conveyor.name = Mass Conveyor -block.payload-router.name = Payload Router -block.disassembler.name = Disassembler -block.silicon-crucible.name = Silicon Crucible -block.overdrive-dome.name = Overdrive Dome +block.segment.name = 片段 +block.command-center.name = 指揮中心 +block.ground-factory.name = 地面工廠 +block.air-factory.name = 航空工廠 +block.naval-factory.name = 海軍工廠 +block.additive-reconstructor.name = 加法重建者 +block.multiplicative-reconstructor.name = 乘法重建者 +block.exponential-reconstructor.name = 指數重建者 +block.tetrative-reconstructor.name = 特殊重建者 +block.payload-conveyor.name = 原料輸送帶 +block.payload-router.name = 原料分配器 +block.disassembler.name = 拆裝機 +block.silicon-crucible.name = 矽爐 +block.overdrive-dome.name = 高速拱頂 -block.switch.name = Switch -block.micro-processor.name = Micro Processor -block.logic-processor.name = Logic Processor -block.hyper-processor.name = Hyper Processor -block.logic-display.name = Logic Display -block.large-logic-display.name = Large Logic Display -block.memory-cell.name = Memory Cell +block.switch.name = 交換器 +block.micro-processor.name = 微處理器 +block.logic-processor.name = 邏輯處理器 +block.hyper-processor.name = 超級處理器 +block.logic-display.name = 邏輯顯示 +block.large-logic-display.name = 大型邏輯顯示 +block.memory-cell.name = 記憶單元 +block.memory-bank.name = Memory Bank team.blue.name = 藍 team.crux.name = 紅 @@ -1172,7 +1202,7 @@ tutorial.launch = 一旦您達到特定的波數, 您就可以[accent] 發射 item.copper.description = 最基本的結構材料。在各種類型的方塊中廣泛使用。 item.lead.description = 一種基本的起始材料。被廣泛用於電子設備和液體運輸方塊。 -item.metaglass.description = 一種超高強度的玻璃。廣泛用於液體分配和存儲。 +item.metaglass.description = 一種超高強度的玻璃。廣泛用於液體分配和儲存。 item.graphite.description = 礦化的碳,用於彈藥和電氣元件。 item.sand.description = 一種常見的材料,廣泛用於冶煉,包括製作合金和作為助熔劑。 item.coal.description = 遠在「播種」事件前就形成的植物化石。一種常見並容易獲得的燃料。 @@ -1183,7 +1213,7 @@ item.silicon.description = 一種非常有用的半導體,被用於太陽能 item.plastanium.description = 一種輕量、可延展的材料,用於高級的飛行載具和破片彈藥。 item.phase-fabric.description = 一種近乎無重量的物質,用於先進的電子設備和自修復技術。 item.surge-alloy.description = 一種具有獨特電子特性的高級合金。 -item.spore-pod.description = 合成的胞子莢。合成大氣濃度的胞子做為工業用途。用於轉化為原油、爆炸物和燃料。 +item.spore-pod.description = 合成的孢子莢。合成大氣濃度的孢子做為工業用途。用於轉化為原油、爆炸物和燃料。 item.blast-compound.description = 一種用於炸彈和爆裂物的不穩定混合物。不建議作為燃料。 item.pyratite.description = 一種在燃燒武器中使用的極易燃物質。 liquid.water.description = 最有用的液體。常用於冷卻機器和廢物處理。 @@ -1253,7 +1283,7 @@ block.conduit.description = 基本液體運輸方塊。將液體往前輸送。 block.pulse-conduit.description = 高級的液體運輸方塊。比標準管線更快地輸送並儲存更多液體。 block.plated-conduit.description = 用和脈衝管線相同的速率運送液體,但有更強的裝甲。除了其他管線以外,不會接受來自側面的其他液體\n比較不會漏液。 block.liquid-router.description = 接受來自一個方向的液體並將它們平均輸出到最多3個其他方向。可以儲存一定量的液體。用於將液體從一個來源分成多個目標。 -block.liquid-tank.description = 存儲大量液體。當液體需求非恆定時,使用它來創建緩衝或作為冷卻重要方塊的保障。 +block.liquid-tank.description = 儲存大量液體。當液體需求非恆定時,使用它來創建緩衝或作為冷卻重要方塊的保障。 block.liquid-junction.description = 作為兩個交叉管線的橋樑。適用於兩條不同管線將不同液體運送到不同位置的情況。 block.bridge-conduit.description = 高級的液體運輸方塊。允許跨過最多3個任何地形或建築物的方塊運輸液體。 block.phase-conduit.description = 高級的液體運輸方塊。使用能量將液體傳送到多個方塊外連接的相織管線。 @@ -1261,8 +1291,8 @@ block.power-node.description = 將能量傳輸到相連的節點。該節點將 block.power-node-large.description = 具有更大範圍和更多連接的高級電源節點。 block.surge-tower.description = 具有兩個可用連接的超遠程能量節點。 block.diode.description = 電池中的電力在這個方塊中只能有一個固定的流向,並且只有在另一側的能量較少時才會通過。 -block.battery.description = 有能量剩餘時存儲電力並在能量短缺時提供能量。 -block.battery-large.description = 比普通電池存儲更多的能量。 +block.battery.description = 有能量剩餘時儲存電力並在能量短缺時提供能量。 +block.battery-large.description = 比普通電池儲存更多的能量。 block.combustion-generator.description = 透過燃燒原油或可燃物品以產生能量。 block.thermal-generator.description = 放置在熱的位置時會產生能量。 block.steam-generator.description = 比燃燒發電機更有效率,但需要水才能運作。 @@ -1274,19 +1304,19 @@ block.thorium-reactor.description = 從高度放射性釷產生大量能量。 block.impact-reactor.description = 先進的發電機,在尖峰值效率時能產生巨量能量。需要大量的電源輸入才能啟動該過程。 block.mechanical-drill.description = 一種便宜的鑽頭。當放置在適當的方塊上時,以緩慢的速度無限期地輸出物品。只能挖掘基本的原料。 block.pneumatic-drill.description = 一種改進的鑽頭,可以挖掘鈦。比機械鑽頭挖掘的更快。 -block.laser-drill.description = 通過激光技術可以更快地挖掘,但需要能量。此外,這種鑽頭可以挖掘放射性釷。 +block.laser-drill.description = 通過雷射技術可以更快地挖掘,但需要能量。此外,這種鑽頭可以挖掘放射性釷。 block.blast-drill.description = 終極的鑽頭。需要大量能量。 block.water-extractor.description = 從地下提取水。當附近沒有湖泊時可以使用它。 block.cultivator.description = 將大氣中微小濃度的胞子培養成工業等級的孢子莢。 block.oil-extractor.description = 使用大量的能量、水以及沙子鑽取原油。當附近沒有直接的原油來源時使用它。 -block.core-shard.description = 初代的核心膠囊。一旦被摧毀,與該地區的所有聯繫都將失去。不要讓這種情況發生。 -block.core-foundation.description = 第二代核心。有更好的裝甲。可以存儲更多資源。 -block.core-nucleus.description = 第三代核心,也是最後一代。裝甲非常好。可以存儲大量資源。 -block.vault.description = 存儲大量的每一種物品。當物品需求非恆定時,使用它來創建緩衝。使用[lightgray]裝卸器[]以從存儲庫提取物品。 -block.container.description = 存儲少量的每一種物品。當物品需求非恆定時,使用它來創建緩衝。使用[lightgray]裝卸器[]以從容器提取物品。 -block.unloader.description = 將物品從容器、存儲庫或核心卸載到傳輸帶上或直接卸載到相鄰的方塊中。透過點擊卸載器來更改要卸載的物品類型。 +block.core-shard.description = 初代的核心膠囊。一旦被摧毀,會失去對該地區的控制權。不要讓這種情況發生。 +block.core-foundation.description = 第二代核心。有更好的裝甲。可以儲存更多資源。 +block.core-nucleus.description = 第三代核心,也是最後一代。裝甲非常好。可以儲存大量資源。 +block.vault.description = 儲存大量的每一種物品。當物品需求非恆定時,使用它來創建緩衝。使用[lightgray]裝卸器[]以從儲存庫提取物品。 +block.container.description = 儲存少量的每一種物品。當物品需求非恆定時,使用它來創建緩衝。使用[lightgray]裝卸器[]以從容器提取物品。 +block.unloader.description = 將物品從容器、倉庫或核心卸載到傳輸帶上或直接卸貨到相鄰的方塊中。透過點擊卸貨器來更改要卸貨的物品類型。 block.launch-pad.description = 無需發射核心即可直接發射物品。 -block.launch-pad-large.description = 發射台的進階版。可存儲更多物品。更快的發射速度。 +block.launch-pad-large.description = 發射台的進階版。可儲存更多物品。更快的發射速度。 block.duo.description = 一種小而便宜的砲塔。 block.scatter.description = 不可或缺的中型防空砲塔。向敵方單位噴射鉛塊、廢料或是鋼化玻璃碎片。 block.scorch.description = 燃燒所有靠近它的地面敵人。在近距離非常有效。 @@ -1300,6 +1330,6 @@ block.fuse.description = 一種近距的大型能量砲塔。向敵人發射三 block.ripple.description = 極為強大的迫擊炮塔。一次向敵人發射數發子彈。 block.cyclone.description = 一種對空和對地的大型砲塔。向附近單位發射爆裂性的碎塊。 block.spectre.description = 一種雙炮管的巨型砲塔。向空中及地面敵人發射大型的穿甲彈。 -block.meltdown.description = 一種巨型激光砲塔。充能並發射持續性的激光光束。需要冷卻液以運作。 +block.meltdown.description = 一種巨型雷射砲塔。充電並發射持續性的雷射光束。需要冷卻液以運作。 block.repair-point.description = 持續治療附近最近的受損單位。 -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. \ No newline at end of file +block.segment.description = 傷害並摧毀來襲的砲彈。無法將雷射砲彈作為目標。 diff --git a/core/assets/fonts/font.woff b/core/assets/fonts/font.woff index 4d8ed4b9f7..bdce985998 100644 Binary files a/core/assets/fonts/font.woff and b/core/assets/fonts/font.woff differ diff --git a/core/assets/maps/archipelago.msav b/core/assets/maps/archipelago.msav new file mode 100644 index 0000000000..24764ccf20 Binary files /dev/null and b/core/assets/maps/archipelago.msav differ diff --git a/core/assets/maps/debrisField.msav b/core/assets/maps/debrisField.msav new file mode 100644 index 0000000000..956a7d5b49 Binary files /dev/null and b/core/assets/maps/debrisField.msav differ diff --git a/core/assets/maps/moltenLake.msav b/core/assets/maps/moltenLake.msav new file mode 100644 index 0000000000..a409307c6f Binary files /dev/null and b/core/assets/maps/moltenLake.msav differ diff --git a/core/assets/maps/mudFlats.msav b/core/assets/maps/mudFlats.msav index 0fb8fd21ab..1ba2e25ceb 100644 Binary files a/core/assets/maps/mudFlats.msav and b/core/assets/maps/mudFlats.msav differ diff --git a/core/assets/scripts/global.js b/core/assets/scripts/global.js index 81a07f2bef..e937b0cd75 100755 --- a/core/assets/scripts/global.js +++ b/core/assets/scripts/global.js @@ -11,8 +11,8 @@ const readBytes = path => Vars.mods.getScripts().readBytes(path) const loadMusic = path => Vars.mods.getScripts().loadMusic(path) const loadSound = path => Vars.mods.getScripts().loadSound(path) -var scriptName = "base.js" -var modName = "none" +let scriptName = "base.js" +let modName = "none" const print = text => log(modName + "/" + scriptName, text); @@ -82,6 +82,7 @@ importPackage(Packages.mindustry.maps.generators) importPackage(Packages.mindustry.maps.planet) importPackage(Packages.mindustry.net) importPackage(Packages.mindustry.type) +importPackage(Packages.mindustry.type.weather) importPackage(Packages.mindustry.ui) importPackage(Packages.mindustry.ui.dialogs) importPackage(Packages.mindustry.ui.fragments) @@ -137,6 +138,7 @@ const PlayerChatEvent = Packages.mindustry.game.EventType.PlayerChatEvent const ClientPreConnectEvent = Packages.mindustry.game.EventType.ClientPreConnectEvent const CommandIssueEvent = Packages.mindustry.game.EventType.CommandIssueEvent const LaunchItemEvent = Packages.mindustry.game.EventType.LaunchItemEvent +const SectorInvasionEvent = Packages.mindustry.game.EventType.SectorInvasionEvent const SectorLoseEvent = Packages.mindustry.game.EventType.SectorLoseEvent const WorldLoadEvent = Packages.mindustry.game.EventType.WorldLoadEvent const ClientLoadEvent = Packages.mindustry.game.EventType.ClientLoadEvent diff --git a/core/assets/shaders/planet.vert b/core/assets/shaders/planet.vert index f500af0ecf..4723e2bfff 100755 --- a/core/assets/shaders/planet.vert +++ b/core/assets/shaders/planet.vert @@ -10,7 +10,7 @@ uniform vec3 u_ambientColor; varying vec4 v_col; -const vec3 diffuse = vec3(0); +const vec3 diffuse = vec3(0.01); const float shinefalloff = 4.0; const float shinelen = 0.2; diff --git a/core/assets/shaders/space.frag b/core/assets/shaders/space.frag index 4b95cf7438..3d669cabb7 100755 --- a/core/assets/shaders/space.frag +++ b/core/assets/shaders/space.frag @@ -1,6 +1,6 @@ #define HIGHP #define NSCALE 2700.0 -#define CAMSCALE (NSCALE*5.0) +#define CAMSCALE (NSCALE*10.0) uniform sampler2D u_texture; uniform sampler2D u_stars; diff --git a/core/assets/sprites/block_colors.png b/core/assets/sprites/block_colors.png index e8845aa072..c297dccdf7 100644 Binary files a/core/assets/sprites/block_colors.png and b/core/assets/sprites/block_colors.png differ diff --git a/core/assets/sprites/fallback/sprites.atlas b/core/assets/sprites/fallback/sprites.atlas index fd8aece5ae..c5fe9391f5 100644 --- a/core/assets/sprites/fallback/sprites.atlas +++ b/core/assets/sprites/fallback/sprites.atlas @@ -67,6 +67,13 @@ block-tetrative-reconstructor-full orig: 288, 288 offset: 0, 0 index: -1 +tetrative-reconstructor-icon-logic + rotate: false + xy: 1449, 1385 + size: 288, 288 + orig: 288, 288 + offset: 0, 0 + index: -1 cracks-9-0 rotate: false xy: 1449, 1095 @@ -255,6 +262,13 @@ large-logic-display orig: 192, 192 offset: 0, 0 index: -1 +large-logic-display-icon-logic + rotate: false + xy: 1567, 102 + size: 192, 192 + orig: 192, 192 + offset: 0, 0 + index: -1 exponential-reconstructor rotate: false xy: 767, 1071 @@ -325,6 +339,13 @@ block-exponential-reconstructor-full orig: 224, 224 offset: 0, 0 index: -1 +exponential-reconstructor-icon-logic + rotate: false + xy: 1823, 1797 + size: 224, 224 + orig: 224, 224 + offset: 0, 0 + index: -1 corvus-outline rotate: false xy: 933, 1 @@ -786,6 +807,13 @@ launch-pad orig: 96, 96 offset: 0, 0 index: -1 +launch-pad-icon-logic + rotate: false + xy: 813, 99 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 launch-pad-large rotate: false xy: 725, 1041 @@ -807,6 +835,13 @@ force-projector orig: 96, 96 offset: 0, 0 index: -1 +force-projector-icon-logic + rotate: false + xy: 1527, 1221 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 force-projector-top rotate: false xy: 1625, 1193 @@ -821,6 +856,13 @@ overdrive-dome orig: 96, 96 offset: 0, 0 index: -1 +overdrive-dome-icon-logic + rotate: false + xy: 1589, 1095 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 overdrive-dome-top rotate: false xy: 1687, 1095 @@ -835,6 +877,13 @@ block-loader orig: 96, 96 offset: 0, 0 index: -1 +block-loader-icon-logic + rotate: false + xy: 1267, 529 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-unloader rotate: false xy: 1231, 235 @@ -842,6 +891,13 @@ block-unloader orig: 96, 96 offset: 0, 0 index: -1 +block-unloader-icon-logic + rotate: false + xy: 1231, 235 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 mass-driver-base rotate: false xy: 1009, 5 @@ -907,21 +963,21 @@ blast-drill index: -1 blast-drill-rim rotate: false - xy: 335, 1103 + xy: 465, 1233 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-rotator rotate: false - xy: 465, 1233 + xy: 335, 973 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-top rotate: false - xy: 335, 973 + xy: 465, 1103 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -1017,6 +1073,13 @@ thermal-pump orig: 96, 96 offset: 0, 0 index: -1 +thermal-pump-icon-logic + rotate: false + xy: 1365, 847 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 hyper-processor rotate: false xy: 1491, 1123 @@ -1024,6 +1087,13 @@ hyper-processor orig: 96, 96 offset: 0, 0 index: -1 +hyper-processor-icon-logic + rotate: false + xy: 1491, 1123 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 logic-display rotate: false xy: 1009, 201 @@ -1031,16 +1101,30 @@ logic-display orig: 96, 96 offset: 0, 0 index: -1 +logic-display-icon-logic + rotate: false + xy: 1009, 201 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 battery-large rotate: false - xy: 1169, 921 + xy: 1169, 725 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +battery-large-icon-logic + rotate: false + xy: 1169, 725 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 battery-large-top rotate: false - xy: 1169, 823 + xy: 1169, 627 size: 96, 96 orig: 96, 96 offset: 0, 0 @@ -1052,6 +1136,13 @@ differential-generator orig: 96, 96 offset: 0, 0 index: -1 +differential-generator-icon-logic + rotate: false + xy: 1445, 1319 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 differential-generator-liquid rotate: false xy: 1543, 1319 @@ -1122,6 +1213,13 @@ solar-panel-large orig: 96, 96 offset: 0, 0 index: -1 +solar-panel-large-icon-logic + rotate: false + xy: 1883, 899 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 thorium-reactor rotate: false xy: 1365, 749 @@ -1129,6 +1227,13 @@ thorium-reactor orig: 96, 96 offset: 0, 0 index: -1 +thorium-reactor-icon-logic + rotate: false + xy: 1365, 749 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 thorium-reactor-lights rotate: false xy: 1365, 651 @@ -1145,14 +1250,21 @@ thorium-reactor-top index: -1 alloy-smelter rotate: false - xy: 1071, 725 + xy: 1169, 921 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +alloy-smelter-icon-logic + rotate: false + xy: 1169, 921 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 alloy-smelter-top rotate: false - xy: 1071, 627 + xy: 1169, 823 size: 96, 96 orig: 96, 96 offset: 0, 0 @@ -1164,6 +1276,13 @@ block-forge orig: 96, 96 offset: 0, 0 index: -1 +block-forge-icon-logic + rotate: false + xy: 1267, 725 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 disassembler rotate: false xy: 1739, 1389 @@ -1171,6 +1290,13 @@ disassembler orig: 96, 96 offset: 0, 0 index: -1 +disassembler-icon-logic + rotate: false + xy: 1739, 1389 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 disassembler-liquid rotate: false xy: 1837, 1389 @@ -1192,6 +1318,13 @@ multi-press orig: 96, 96 offset: 0, 0 index: -1 +multi-press-icon-logic + rotate: false + xy: 1107, 137 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 silicon-crucible rotate: false xy: 1687, 899 @@ -1199,6 +1332,13 @@ silicon-crucible orig: 96, 96 offset: 0, 0 index: -1 +silicon-crucible-icon-logic + rotate: false + xy: 1687, 899 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 silicon-crucible-top rotate: false xy: 1785, 899 @@ -1264,14 +1404,14 @@ vault-team index: -1 block-3 rotate: false - xy: 1169, 725 + xy: 1197, 1019 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-4 rotate: false - xy: 465, 1103 + xy: 335, 843 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -1320,14 +1460,14 @@ additive-reconstructor index: -1 additive-reconstructor-top rotate: false - xy: 1071, 921 + xy: 1071, 823 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 air-factory rotate: false - xy: 1071, 823 + xy: 1071, 725 size: 96, 96 orig: 96, 96 offset: 0, 0 @@ -1402,6 +1542,13 @@ scrap-wall-gigantic orig: 128, 128 offset: 0, 0 index: -1 +scrap-wall-gigantic-icon-logic + rotate: false + xy: 985, 1313 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 scrap-wall-huge2 rotate: false xy: 1491, 927 @@ -1465,6 +1612,34 @@ parallax-laser-end orig: 72, 72 offset: 0, 0 index: -1 +additive-reconstructor-icon-logic + rotate: false + xy: 1071, 921 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +block-additive-reconstructor-full + rotate: false + xy: 1071, 921 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +air-factory-icon-logic + rotate: false + xy: 1071, 627 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +block-air-factory-full + rotate: false + xy: 1071, 627 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 arkyid-foot rotate: false xy: 1757, 319 @@ -1556,23 +1731,16 @@ beam-weapon-outline orig: 80, 80 offset: 0, 0 index: -1 -block-additive-reconstructor-full +blast-drill-icon-logic rotate: false - xy: 1169, 627 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -block-air-factory-full - rotate: false - xy: 1197, 1019 - size: 96, 96 - orig: 96, 96 + xy: 335, 1103 + size: 128, 128 + orig: 128, 128 offset: 0, 0 index: -1 block-blast-drill-full rotate: false - xy: 335, 843 + xy: 335, 1103 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -1584,6 +1752,13 @@ block-core-foundation-full orig: 128, 128 offset: 0, 0 index: -1 +core-foundation-icon-logic + rotate: false + xy: 465, 973 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 block-core-nucleus-full rotate: false xy: 1, 335 @@ -1591,6 +1766,13 @@ block-core-nucleus-full orig: 160, 160 offset: 0, 0 index: -1 +core-nucleus-icon-logic + rotate: false + xy: 1, 335 + size: 160, 160 + orig: 160, 160 + offset: 0, 0 + index: -1 block-core-shard-full rotate: false xy: 1267, 921 @@ -1598,6 +1780,13 @@ block-core-shard-full orig: 96, 96 offset: 0, 0 index: -1 +core-shard-icon-logic + rotate: false + xy: 1267, 921 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-cyclone-full rotate: false xy: 1267, 823 @@ -1605,6 +1794,13 @@ block-cyclone-full orig: 96, 96 offset: 0, 0 index: -1 +cyclone-icon-logic + rotate: false + xy: 1267, 823 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-foreshadow-full rotate: false xy: 335, 713 @@ -1612,6 +1808,13 @@ block-foreshadow-full orig: 128, 128 offset: 0, 0 index: -1 +foreshadow-icon-logic + rotate: false + xy: 335, 713 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 block-fuse-full rotate: false xy: 1267, 627 @@ -1619,6 +1822,13 @@ block-fuse-full orig: 96, 96 offset: 0, 0 index: -1 +fuse-icon-logic + rotate: false + xy: 1267, 627 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-ground-factory-full rotate: false xy: 1035, 397 @@ -1626,6 +1836,13 @@ block-ground-factory-full orig: 96, 96 offset: 0, 0 index: -1 +ground-factory-icon-logic + rotate: false + xy: 1035, 397 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-impact-reactor-full rotate: false xy: 465, 843 @@ -1633,6 +1850,13 @@ block-impact-reactor-full orig: 128, 128 offset: 0, 0 index: -1 +impact-reactor-icon-logic + rotate: false + xy: 465, 843 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 block-laser-drill-full rotate: false xy: 1071, 529 @@ -1640,6 +1864,13 @@ block-laser-drill-full orig: 96, 96 offset: 0, 0 index: -1 +laser-drill-icon-logic + rotate: false + xy: 1071, 529 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-liquid-tank-full rotate: false xy: 1169, 529 @@ -1647,6 +1878,13 @@ block-liquid-tank-full orig: 96, 96 offset: 0, 0 index: -1 +liquid-tank-icon-logic + rotate: false + xy: 1169, 529 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-mass-driver-full rotate: false xy: 1133, 431 @@ -1654,6 +1892,13 @@ block-mass-driver-full orig: 96, 96 offset: 0, 0 index: -1 +mass-driver-icon-logic + rotate: false + xy: 1133, 431 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-meltdown-full rotate: false xy: 335, 583 @@ -1661,6 +1906,13 @@ block-meltdown-full orig: 128, 128 offset: 0, 0 index: -1 +meltdown-icon-logic + rotate: false + xy: 335, 583 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 block-multiplicative-reconstructor-full rotate: false xy: 1, 173 @@ -1668,6 +1920,13 @@ block-multiplicative-reconstructor-full orig: 160, 160 offset: 0, 0 index: -1 +multiplicative-reconstructor-icon-logic + rotate: false + xy: 1, 173 + size: 160, 160 + orig: 160, 160 + offset: 0, 0 + index: -1 block-naval-factory-full rotate: false xy: 1231, 431 @@ -1675,6 +1934,13 @@ block-naval-factory-full orig: 96, 96 offset: 0, 0 index: -1 +naval-factory-icon-logic + rotate: false + xy: 1231, 431 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-oil-extractor-full rotate: false xy: 1329, 431 @@ -1682,6 +1948,13 @@ block-oil-extractor-full orig: 96, 96 offset: 0, 0 index: -1 +oil-extractor-icon-logic + rotate: false + xy: 1329, 431 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-payload-conveyor-full rotate: false xy: 1133, 333 @@ -1696,6 +1969,13 @@ payload-conveyor-icon orig: 96, 96 offset: 0, 0 index: -1 +payload-conveyor-icon-logic + rotate: false + xy: 1133, 333 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-payload-router-full rotate: false xy: 1231, 333 @@ -1710,6 +1990,13 @@ payload-router-icon orig: 96, 96 offset: 0, 0 index: -1 +payload-router-icon-logic + rotate: false + xy: 1231, 333 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-ripple-full rotate: false xy: 1329, 333 @@ -1717,6 +2004,13 @@ block-ripple-full orig: 96, 96 offset: 0, 0 index: -1 +ripple-icon-logic + rotate: false + xy: 1329, 333 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-scrap-wall-huge-full rotate: false xy: 1035, 299 @@ -1731,6 +2025,13 @@ scrap-wall-huge1 orig: 96, 96 offset: 0, 0 index: -1 +scrap-wall-huge-icon-logic + rotate: false + xy: 1035, 299 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-spectre-full rotate: false xy: 465, 713 @@ -1738,6 +2039,13 @@ block-spectre-full orig: 128, 128 offset: 0, 0 index: -1 +spectre-icon-logic + rotate: false + xy: 465, 713 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 block-tsunami-full rotate: false xy: 1133, 235 @@ -1745,6 +2053,13 @@ block-tsunami-full orig: 96, 96 offset: 0, 0 index: -1 +tsunami-icon-logic + rotate: false + xy: 1133, 235 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-vault-full rotate: false xy: 1329, 235 @@ -1752,6 +2067,13 @@ block-vault-full orig: 96, 96 offset: 0, 0 index: -1 +vault-icon-logic + rotate: false + xy: 1329, 235 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 bryde-outline rotate: false xy: 675, 1573 @@ -2915,4655 +3237,5719 @@ filter: nearest,nearest repeat: none launchpod rotate: false - xy: 1201, 891 + xy: 1201, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mend-projector rotate: false - xy: 339, 825 + xy: 339, 827 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +mend-projector-icon-logic + rotate: false + xy: 339, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mend-projector-top rotate: false - xy: 405, 825 + xy: 405, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mender rotate: false - xy: 785, 95 + xy: 915, 499 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +mender-icon-logic + rotate: false + xy: 915, 499 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mender-top rotate: false - xy: 785, 61 + xy: 813, 483 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 overdrive-projector rotate: false - xy: 471, 825 + xy: 471, 827 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +overdrive-projector-icon-logic + rotate: false + xy: 471, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 overdrive-projector-top rotate: false - xy: 537, 825 + xy: 537, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 shock-mine rotate: false - xy: 819, 163 + xy: 921, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-arrow rotate: false - xy: 425, 197 + xy: 445, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor rotate: false - xy: 445, 61 + xy: 459, 267 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +bridge-conveyor-icon-logic + rotate: false + xy: 459, 267 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-bridge rotate: false - xy: 445, 27 + xy: 459, 233 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-end rotate: false - xy: 462, 333 + xy: 459, 199 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 center rotate: false - xy: 462, 299 + xy: 479, 165 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-0 rotate: false - xy: 133, 495 + xy: 167, 369 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-icon-logic + rotate: false + xy: 167, 369 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-armored-conveyor-full rotate: false - xy: 133, 495 + xy: 167, 369 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-1 rotate: false - xy: 133, 461 + xy: 190, 335 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-2 rotate: false - xy: 133, 427 + xy: 190, 301 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-3 rotate: false - xy: 167, 367 + xy: 187, 267 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-0 rotate: false - xy: 190, 333 + xy: 187, 233 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-1 rotate: false - xy: 190, 299 + xy: 187, 199 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-2 rotate: false - xy: 187, 265 + xy: 201, 369 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-3 rotate: false - xy: 187, 231 + xy: 224, 335 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-0 rotate: false - xy: 187, 197 + xy: 224, 301 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-1 rotate: false - xy: 201, 367 + xy: 221, 267 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-2 rotate: false - xy: 224, 333 + xy: 221, 233 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-3 rotate: false - xy: 224, 299 + xy: 221, 199 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-0 rotate: false - xy: 221, 265 + xy: 235, 369 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-1 rotate: false - xy: 221, 231 + xy: 258, 335 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-2 rotate: false - xy: 221, 197 + xy: 258, 301 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-3 rotate: false - xy: 235, 367 + xy: 255, 267 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-0 rotate: false - xy: 258, 333 + xy: 255, 233 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-1 rotate: false - xy: 258, 299 + xy: 255, 199 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-2 rotate: false - xy: 255, 265 + xy: 241, 165 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-3 rotate: false - xy: 255, 231 + xy: 241, 131 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-1 rotate: false - xy: 493, 231 + xy: 513, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-2 rotate: false - xy: 493, 197 + xy: 513, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-3 rotate: false - xy: 507, 367 + xy: 530, 335 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-0 rotate: false - xy: 513, 163 + xy: 530, 301 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-1 rotate: false - xy: 513, 129 + xy: 527, 267 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-2 rotate: false - xy: 513, 95 + xy: 527, 233 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-3 rotate: false - xy: 513, 61 + xy: 527, 199 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-0 rotate: false - xy: 513, 27 + xy: 541, 369 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-1 rotate: false - xy: 530, 333 + xy: 547, 165 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-2 rotate: false - xy: 530, 299 + xy: 547, 131 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-3 rotate: false - xy: 527, 265 + xy: 547, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-0 rotate: false - xy: 527, 231 + xy: 547, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-1 rotate: false - xy: 527, 197 + xy: 547, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-2 rotate: false - xy: 541, 367 + xy: 564, 335 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-3 rotate: false - xy: 547, 163 + xy: 564, 301 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-0 rotate: false - xy: 547, 129 + xy: 561, 267 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-1 rotate: false - xy: 547, 95 + xy: 561, 233 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-2 rotate: false - xy: 547, 61 + xy: 561, 199 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-3 rotate: false - xy: 547, 27 + xy: 575, 369 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor rotate: false - xy: 847, 469 + xy: 813, 347 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plastanium-conveyor-icon-logic + rotate: false + xy: 813, 347 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-0 rotate: false - xy: 881, 463 + xy: 847, 335 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-1 rotate: false - xy: 915, 463 + xy: 881, 329 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-2 rotate: false - xy: 813, 447 + xy: 915, 329 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-edge rotate: false - xy: 847, 435 + xy: 802, 313 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-stack rotate: false - xy: 881, 429 + xy: 802, 279 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-1 rotate: false - xy: 938, 293 + xy: 239, 635 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-2 rotate: false - xy: 938, 259 + xy: 273, 669 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-3 rotate: false - xy: 935, 225 + xy: 239, 601 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-0 rotate: false - xy: 935, 191 + xy: 273, 635 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-1 rotate: false - xy: 955, 157 + xy: 307, 669 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-2 rotate: false - xy: 955, 123 + xy: 273, 601 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-3 rotate: false - xy: 955, 89 + xy: 307, 635 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-0 rotate: false - xy: 955, 55 + xy: 341, 669 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-1 rotate: false - xy: 955, 21 + xy: 307, 601 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-2 rotate: false - xy: 171, 709 + xy: 341, 635 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-3 rotate: false - xy: 171, 675 + xy: 375, 669 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-0 rotate: false - xy: 171, 641 + xy: 341, 601 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-1 rotate: false - xy: 171, 607 + xy: 375, 635 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-2 rotate: false - xy: 171, 573 + xy: 409, 669 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-3 rotate: false - xy: 205, 725 + xy: 375, 601 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-0 rotate: false - xy: 205, 691 + xy: 409, 635 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-1 rotate: false - xy: 205, 657 + xy: 443, 669 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-2 rotate: false - xy: 205, 623 + xy: 409, 601 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-3 rotate: false - xy: 205, 589 + xy: 443, 635 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cross rotate: false - xy: 581, 61 + xy: 615, 165 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 distributor rotate: false - xy: 541, 891 + xy: 541, 893 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +distributor-icon-logic + rotate: false + xy: 541, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 inverted-sorter rotate: false - xy: 615, 95 + xy: 666, 301 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +inverted-sorter-icon-logic + rotate: false + xy: 666, 301 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 junction rotate: false - xy: 717, 27 + xy: 751, 29 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +junction-icon-logic + rotate: false + xy: 751, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 overflow-gate rotate: false - xy: 847, 571 + xy: 881, 431 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +overflow-gate-icon-logic + rotate: false + xy: 881, 431 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor rotate: false - xy: 881, 531 + xy: 881, 397 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-conveyor-icon-logic + rotate: false + xy: 881, 397 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-arrow rotate: false - xy: 915, 531 + xy: 915, 397 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-bridge rotate: false - xy: 881, 497 + xy: 847, 369 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-end rotate: false - xy: 915, 497 + xy: 881, 363 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 router rotate: false - xy: 836, 265 + xy: 887, 159 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +router-icon-logic + rotate: false + xy: 887, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sorter rotate: false - xy: 819, 95 + xy: 935, 227 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +sorter-icon-logic + rotate: false + xy: 935, 227 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 underflow-gate rotate: false - xy: 273, 667 + xy: 477, 635 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +underflow-gate-icon-logic + rotate: false + xy: 477, 635 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 drill-top rotate: false - xy: 739, 891 + xy: 739, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 steam-generator-liquid rotate: false - xy: 739, 891 + xy: 739, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-drill rotate: false - xy: 1861, 891 + xy: 1861, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-drill-rotator rotate: false - xy: 1927, 891 + xy: 1927, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-drill-top rotate: false - xy: 207, 825 + xy: 207, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pneumatic-drill rotate: false - xy: 1131, 825 + xy: 1131, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pneumatic-drill-rotator rotate: false - xy: 1197, 825 + xy: 1197, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pneumatic-drill-top rotate: false - xy: 1263, 825 + xy: 1263, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor rotate: false - xy: 1923, 759 + xy: 1923, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-liquid rotate: false - xy: 67, 697 + xy: 67, 699 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-rotator rotate: false - xy: 67, 631 + xy: 67, 633 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-top rotate: false - xy: 67, 565 + xy: 67, 567 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-border rotate: false - xy: 241, 27 + xy: 275, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-middle rotate: false - xy: 323, 197 + xy: 343, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-select rotate: false - xy: 391, 265 + xy: 411, 165 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-liquid rotate: false - xy: 479, 95 + xy: 493, 233 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit rotate: false - xy: 439, 367 + xy: 445, 63 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +bridge-conduit-icon-logic + rotate: false + xy: 445, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-arrow rotate: false - xy: 445, 163 + xy: 445, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-arrow rotate: false - xy: 445, 163 + xy: 445, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-bridge rotate: false - xy: 445, 129 + xy: 462, 335 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-end rotate: false - xy: 445, 95 + xy: 462, 301 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom rotate: false - xy: 459, 197 + xy: 479, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-0 rotate: false - xy: 473, 367 + xy: 496, 335 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-1 rotate: false - xy: 479, 163 + xy: 496, 301 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-2 rotate: false - xy: 479, 129 + xy: 493, 267 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-3 rotate: false - xy: 479, 129 + xy: 493, 267 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-4 rotate: false - xy: 479, 129 + xy: 493, 267 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-0 rotate: false - xy: 479, 61 + xy: 493, 199 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-1 rotate: false - xy: 479, 27 + xy: 507, 369 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-2 rotate: false - xy: 496, 333 + xy: 513, 165 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-3 rotate: false - xy: 496, 299 + xy: 513, 131 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-3 rotate: false - xy: 496, 299 + xy: 513, 131 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-4 rotate: false - xy: 493, 265 + xy: 513, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-junction rotate: false - xy: 731, 265 + xy: 768, 301 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-junction-icon-logic + rotate: false + xy: 768, 301 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-overflow-gate rotate: false - xy: 745, 367 + xy: 765, 199 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-overflow-gate-top rotate: false - xy: 751, 163 + xy: 779, 369 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-bottom rotate: false - xy: 751, 129 + xy: 813, 619 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-liquid rotate: false - xy: 751, 95 + xy: 785, 165 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-top rotate: false - xy: 751, 61 + xy: 785, 131 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mechanical-pump rotate: false - xy: 779, 367 + xy: 813, 517 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +mechanical-pump-icon-logic + rotate: false + xy: 813, 517 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mechanical-pump-liquid rotate: false - xy: 813, 617 + xy: 847, 505 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rotary-pump-liquid rotate: false - xy: 813, 617 + xy: 847, 505 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thermal-pump-liquid rotate: false - xy: 813, 617 + xy: 847, 505 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit rotate: false - xy: 813, 549 + xy: 915, 431 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-conduit-icon-logic + rotate: false + xy: 915, 431 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-arrow rotate: false - xy: 847, 537 + xy: 813, 415 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-bridge rotate: false - xy: 813, 515 + xy: 847, 403 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-end rotate: false - xy: 847, 503 + xy: 813, 381 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-cap rotate: false - xy: 813, 413 + xy: 799, 211 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-0 rotate: false - xy: 847, 401 + xy: 836, 301 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-1 rotate: false - xy: 813, 379 + xy: 836, 267 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-2 rotate: false - xy: 881, 395 + xy: 833, 233 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-3 rotate: false - xy: 915, 395 + xy: 870, 295 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-4 rotate: false - xy: 847, 367 + xy: 904, 295 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-0 rotate: false - xy: 847, 333 + xy: 867, 193 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-1 rotate: false - xy: 881, 327 + xy: 901, 193 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-2 rotate: false - xy: 915, 327 + xy: 819, 170 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-4 rotate: false - xy: 802, 311 + xy: 819, 136 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rotary-pump rotate: false - xy: 1659, 825 + xy: 1659, 827 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +rotary-pump-icon-logic + rotate: false + xy: 1659, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 logic-processor rotate: false - xy: 1267, 891 + xy: 1267, 893 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +logic-processor-icon-logic + rotate: false + xy: 1267, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 memory-bank rotate: false - xy: 273, 825 + xy: 273, 827 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +memory-bank-icon-logic + rotate: false + xy: 273, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 memory-cell rotate: false - xy: 785, 129 + xy: 881, 499 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +memory-cell-icon-logic + rotate: false + xy: 881, 499 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 message rotate: false - xy: 785, 27 + xy: 847, 471 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +message-icon-logic + rotate: false + xy: 847, 471 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 micro-processor rotate: false - xy: 813, 583 + xy: 881, 465 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +micro-processor-icon-logic + rotate: false + xy: 881, 465 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 switch rotate: false - xy: 921, 89 + xy: 205, 625 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +switch-icon-logic + rotate: false + xy: 205, 625 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 switch-on rotate: false - xy: 921, 55 + xy: 205, 591 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 battery rotate: false - xy: 255, 197 + xy: 241, 97 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +battery-icon-logic + rotate: false + xy: 241, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 battery-top rotate: false - xy: 241, 163 + xy: 241, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 combustion-generator rotate: false - xy: 459, 265 + xy: 479, 97 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +combustion-generator-icon-logic + rotate: false + xy: 479, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 combustion-generator-top rotate: false - xy: 459, 231 + xy: 479, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 diode rotate: false - xy: 581, 27 + xy: 615, 63 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +diode-icon-logic + rotate: false + xy: 615, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 diode-arrow rotate: false - xy: 598, 333 + xy: 615, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator rotate: false - xy: 609, 367 + xy: 649, 63 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +illuminator-icon-logic + rotate: false + xy: 649, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator-top rotate: false - xy: 615, 163 + xy: 649, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-node rotate: false - xy: 881, 361 + xy: 904, 261 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +power-node-icon-logic + rotate: false + xy: 904, 261 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-node-large rotate: false - xy: 1329, 825 + xy: 1329, 827 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +power-node-large-icon-logic + rotate: false + xy: 1329, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 power-source rotate: false - xy: 915, 361 + xy: 867, 227 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +power-source-icon-logic + rotate: false + xy: 867, 227 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-void rotate: false - xy: 813, 345 + xy: 901, 227 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +power-void-icon-logic + rotate: false + xy: 901, 227 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rtg-generator rotate: false - xy: 1725, 825 + xy: 1725, 827 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +rtg-generator-icon-logic + rotate: false + xy: 1725, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rtg-generator-top rotate: false - xy: 833, 231 + xy: 853, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel rotate: false - xy: 819, 129 + xy: 938, 261 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +solar-panel-icon-logic + rotate: false + xy: 938, 261 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 steam-generator rotate: false - xy: 1131, 759 + xy: 1131, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 steam-generator-cap rotate: false - xy: 1197, 759 + xy: 1197, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 steam-generator-top rotate: false - xy: 1263, 759 + xy: 1263, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 steam-generator-turbine0 rotate: false - xy: 1329, 759 + xy: 1329, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 steam-generator-turbine1 rotate: false - xy: 1395, 759 + xy: 1395, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 surge-tower rotate: false - xy: 1461, 759 + xy: 1461, 761 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +surge-tower-icon-logic + rotate: false + xy: 1461, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thermal-generator rotate: false - xy: 1659, 759 + xy: 1659, 761 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +thermal-generator-icon-logic + rotate: false + xy: 1659, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 blast-mixer rotate: false - xy: 1, 697 + xy: 1, 699 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +blast-mixer-icon-logic + rotate: false + xy: 1, 699 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 coal-centrifuge rotate: false - xy: 1, 103 + xy: 1, 105 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +coal-centrifuge-icon-logic + rotate: false + xy: 1, 105 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluid-mixer-bottom rotate: false - xy: 1927, 957 + xy: 1927, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluid-mixer-liquid rotate: false - xy: 211, 891 + xy: 211, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluid-mixer-top rotate: false - xy: 277, 891 + xy: 277, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator rotate: false - xy: 343, 891 + xy: 343, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-middle rotate: false - xy: 409, 891 + xy: 409, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-top rotate: false - xy: 475, 891 + xy: 475, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 graphite-press rotate: false - xy: 871, 891 + xy: 871, 893 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +graphite-press-icon-logic + rotate: false + xy: 871, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 incinerator rotate: false - xy: 615, 129 + xy: 666, 335 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +incinerator-icon-logic + rotate: false + xy: 666, 335 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-source rotate: false - xy: 700, 333 + xy: 734, 335 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-source-icon-logic + rotate: false + xy: 734, 335 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-void rotate: false - xy: 717, 61 + xy: 751, 63 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-void-icon-logic + rotate: false + xy: 751, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 kiln rotate: false - xy: 937, 891 + xy: 937, 893 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +kiln-icon-logic + rotate: false + xy: 937, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 kiln-top rotate: false - xy: 1003, 891 + xy: 1003, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 silicon-smelter-top rotate: false - xy: 1003, 891 + xy: 1003, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 liquid-source rotate: false - xy: 768, 299 + xy: 785, 29 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-source-icon-logic + rotate: false + xy: 785, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-void rotate: false - xy: 765, 265 + xy: 813, 585 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-void-icon-logic + rotate: false + xy: 813, 585 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 melter rotate: false - xy: 785, 163 + xy: 915, 533 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +melter-icon-logic + rotate: false + xy: 915, 533 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-weaver rotate: false - xy: 735, 825 + xy: 735, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-bottom rotate: false - xy: 801, 825 + xy: 801, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-weave rotate: false - xy: 867, 825 + xy: 867, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-compressor rotate: false - xy: 933, 825 + xy: 933, 827 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +plastanium-compressor-icon-logic + rotate: false + xy: 933, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-compressor-top rotate: false - xy: 999, 825 + xy: 999, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pulverizer rotate: false - xy: 802, 277 + xy: 819, 102 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulverizer-rotator rotate: false - xy: 799, 243 + xy: 819, 68 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pyratite-mixer rotate: false - xy: 1461, 825 + xy: 1461, 827 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +pyratite-mixer-icon-logic + rotate: false + xy: 1461, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator rotate: false - xy: 471, 759 + xy: 471, 761 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +separator-icon-logic + rotate: false + xy: 471, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator-liquid rotate: false - xy: 537, 759 + xy: 537, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator-spinner rotate: false - xy: 603, 759 + xy: 603, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 silicon-smelter rotate: false - xy: 669, 759 + xy: 669, 761 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +silicon-smelter-icon-logic + rotate: false + xy: 669, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press rotate: false - xy: 735, 759 + xy: 735, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame0 rotate: false - xy: 801, 759 + xy: 801, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame1 rotate: false - xy: 867, 759 + xy: 867, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame2 rotate: false - xy: 933, 759 + xy: 933, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-liquid rotate: false - xy: 999, 759 + xy: 999, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-top rotate: false - xy: 1065, 759 + xy: 1065, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 boulder1 rotate: false - xy: 1527, 709 + xy: 1527, 711 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 boulder2 rotate: false - xy: 1577, 709 + xy: 1577, 711 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dacite-boulder1 rotate: false - xy: 697, 651 + xy: 697, 653 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dacite-boulder2 rotate: false - xy: 747, 651 + xy: 747, 653 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 sand-boulder1 rotate: false - xy: 870, 293 + xy: 887, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-boulder2 rotate: false - xy: 904, 293 + xy: 853, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-boulder1 rotate: false - xy: 867, 191 + xy: 921, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-boulder2 rotate: false - xy: 901, 191 + xy: 921, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snow-boulder1 rotate: false - xy: 1547, 509 + xy: 1547, 511 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 snow-boulder2 rotate: false - xy: 1597, 509 + xy: 1597, 511 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spore-cluster1 rotate: false - xy: 1317, 509 + xy: 1317, 511 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 spore-cluster2 rotate: false - xy: 1359, 509 + xy: 1359, 511 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 spore-cluster3 rotate: false - xy: 1401, 509 + xy: 1401, 511 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 container rotate: false - xy: 1069, 957 + xy: 1069, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 container-team rotate: false - xy: 1135, 957 + xy: 1135, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 unloader rotate: false - xy: 239, 599 + xy: 477, 601 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +unloader-icon-logic + rotate: false + xy: 477, 601 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unloader-center rotate: false - xy: 273, 633 + xy: 205, 557 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 arc-heat rotate: false - xy: 133, 529 + xy: 133, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-1 rotate: false - xy: 241, 129 + xy: 275, 165 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-2 rotate: false - xy: 71, 767 + xy: 71, 769 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 hail-heat rotate: false - xy: 1945, 407 + xy: 1945, 409 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 lancer-heat rotate: false - xy: 1135, 891 + xy: 1135, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 salvo-heat rotate: false - xy: 1857, 825 + xy: 1857, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scorch-heat rotate: false - xy: 904, 259 + xy: 887, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 wave-liquid rotate: false - xy: 67, 433 + xy: 67, 435 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 wave-top rotate: false - xy: 67, 367 + xy: 67, 369 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 command-center rotate: false - xy: 871, 957 + xy: 871, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 command-center-team rotate: false - xy: 1, 37 + xy: 1, 39 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rally-point rotate: false - xy: 1527, 825 + xy: 1527, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 repair-point-base rotate: false - xy: 836, 299 + xy: 853, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 resupply-point rotate: false - xy: 1593, 825 + xy: 1593, 827 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +resupply-point-icon-logic + rotate: false + xy: 1593, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 copper-wall rotate: false - xy: 564, 333 + xy: 581, 131 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +copper-wall-icon-logic + rotate: false + xy: 581, 131 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper-wall-large rotate: false - xy: 1333, 957 + xy: 1333, 959 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +copper-wall-large-icon-logic + rotate: false + xy: 1333, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door rotate: false - xy: 598, 299 + xy: 632, 335 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +door-icon-logic + rotate: false + xy: 632, 335 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 door-large rotate: false - xy: 607, 891 + xy: 607, 893 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +door-large-icon-logic + rotate: false + xy: 607, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-large-open rotate: false - xy: 673, 891 + xy: 673, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-open rotate: false - xy: 595, 265 + xy: 632, 301 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall rotate: false - xy: 813, 481 + xy: 915, 363 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-wall-icon-logic + rotate: false + xy: 915, 363 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall-large rotate: false - xy: 669, 825 + xy: 669, 827 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +phase-wall-large-icon-logic + rotate: false + xy: 669, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-wall rotate: false - xy: 915, 429 + xy: 799, 245 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plastanium-wall-icon-logic + rotate: false + xy: 799, 245 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-wall-large rotate: false - xy: 1065, 825 + xy: 1065, 827 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +plastanium-wall-large-icon-logic + rotate: false + xy: 1065, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large1 rotate: false - xy: 141, 771 + xy: 141, 773 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large2 rotate: false - xy: 207, 759 + xy: 207, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large3 rotate: false - xy: 273, 759 + xy: 273, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large4 rotate: false - xy: 339, 759 + xy: 339, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall2 rotate: false - xy: 867, 225 + xy: 853, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall3 rotate: false - xy: 901, 225 + xy: 887, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall4 rotate: false - xy: 833, 197 + xy: 921, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall5 rotate: false - xy: 833, 197 + xy: 921, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall rotate: false - xy: 921, 123 + xy: 205, 659 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +surge-wall-icon-logic + rotate: false + xy: 205, 659 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall-large rotate: false - xy: 1527, 759 + xy: 1527, 761 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +surge-wall-large-icon-logic + rotate: false + xy: 1527, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thorium-wall rotate: false - xy: 921, 21 + xy: 239, 669 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +thorium-wall-icon-logic + rotate: false + xy: 239, 669 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium-wall-large rotate: false - xy: 1725, 759 + xy: 1725, 761 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +thorium-wall-large-icon-logic + rotate: false + xy: 1725, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 titanium-wall rotate: false - xy: 239, 667 + xy: 477, 669 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-wall-icon-logic + rotate: false + xy: 477, 669 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall-large rotate: false - xy: 1791, 759 + xy: 1791, 761 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +titanium-wall-large-icon-logic + rotate: false + xy: 1791, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 bullet rotate: false - xy: 1993, 969 + xy: 1993, 971 size: 52, 52 orig: 52, 52 offset: 0, 0 index: -1 bullet-back rotate: false - xy: 821, 705 + xy: 821, 707 size: 52, 52 orig: 52, 52 offset: 0, 0 index: -1 casing rotate: false - xy: 1987, 473 + xy: 1987, 475 size: 8, 16 orig: 8, 16 offset: 0, 0 index: -1 circle-mid rotate: false - xy: 975, 244 + xy: 975, 196 size: 1, 199 orig: 1, 199 offset: 0, 0 index: -1 error rotate: false - xy: 1147, 659 + xy: 1147, 661 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 laser rotate: false - xy: 1977, 709 + xy: 1977, 711 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 minelaser rotate: false - xy: 1983, 709 + xy: 1983, 711 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 missile rotate: false - xy: 133, 677 + xy: 133, 679 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 missile-back rotate: false - xy: 133, 639 + xy: 133, 641 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 parallax-laser rotate: false - xy: 975, 445 + xy: 167, 515 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 particle rotate: false - xy: 1275, 509 + xy: 1275, 511 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 scale_marker rotate: false - xy: 1191, 603 + xy: 1191, 605 size: 4, 4 orig: 4, 4 offset: 0, 0 index: -1 shell rotate: false - xy: 133, 601 + xy: 133, 603 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 shell-back rotate: false - xy: 133, 563 + xy: 133, 565 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 transfer rotate: false - xy: 981, 449 + xy: 167, 465 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 transfer-arrow rotate: false - xy: 239, 633 + xy: 443, 601 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 white rotate: false - xy: 1197, 704 + xy: 1197, 706 size: 3, 3 orig: 3, 3 offset: 0, 0 index: -1 +alpha-icon-logic + rotate: false + xy: 133, 369 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 alpha-outline rotate: false - xy: 1027, 709 + xy: 1027, 711 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-wreck0 rotate: false - xy: 1077, 709 + xy: 1077, 711 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-wreck1 rotate: false - xy: 1127, 709 + xy: 1127, 711 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-wreck2 rotate: false - xy: 1177, 709 + xy: 1177, 711 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 +antumbra-icon-logic + rotate: false + xy: 981, 493 + size: 28, 32 + orig: 28, 32 + offset: 0, 0 + index: -1 arc rotate: false - xy: 133, 367 + xy: 133, 531 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +arc-icon-logic + rotate: false + xy: 133, 463 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-arc-full + rotate: false + xy: 133, 463 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +arkyid-icon-logic + rotate: false + xy: 133, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 arkyid-leg rotate: false - xy: 67, 132 + xy: 67, 134 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 artillery-outline rotate: false - xy: 1277, 701 + xy: 1277, 703 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 atrax-foot rotate: false - xy: 1945, 449 + xy: 1945, 451 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 +atrax-icon-logic + rotate: false + xy: 1993, 894 + size: 32, 23 + orig: 32, 23 + offset: 0, 0 + index: -1 atrax-joint rotate: false - xy: 175, 743 + xy: 175, 745 size: 26, 26 orig: 26, 26 offset: 0, 0 index: -1 atrax-leg rotate: false - xy: 137, 743 + xy: 137, 745 size: 36, 26 orig: 36, 26 offset: 0, 0 index: -1 atrax-leg-base rotate: false - xy: 133, 715 + xy: 133, 717 size: 36, 26 orig: 36, 26 offset: 0, 0 index: -1 +beta-icon-logic + rotate: false + xy: 241, 31 + size: 32, 30 + orig: 32, 30 + offset: 0, 0 + index: -1 beta-outline rotate: false - xy: 67, 20 + xy: 67, 22 size: 56, 54 orig: 56, 54 offset: 0, 0 index: -1 beta-wreck0 rotate: false - xy: 1989, 835 + xy: 1989, 837 size: 56, 54 orig: 56, 54 offset: 0, 0 index: -1 beta-wreck1 rotate: false - xy: 1989, 779 + xy: 1989, 781 size: 56, 54 orig: 56, 54 offset: 0, 0 index: -1 beta-wreck2 rotate: false - xy: 1989, 723 + xy: 1989, 725 size: 56, 54 orig: 56, 54 offset: 0, 0 index: -1 -block-arc-full +blast-compound-icon-logic rotate: false - xy: 241, 95 + xy: 269, 369 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-blast-compound-medium + rotate: false + xy: 269, 369 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-basalt-full rotate: false - xy: 241, 61 + xy: 275, 131 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-boulder-full rotate: false - xy: 1377, 709 + xy: 1377, 711 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-char-full rotate: false - xy: 269, 367 + xy: 275, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-command-center-full rotate: false - xy: 141, 837 + xy: 141, 839 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +command-center-icon-logic + rotate: false + xy: 141, 839 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-conduit-full rotate: false - xy: 275, 163 + xy: 275, 29 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-icon-logic + rotate: false + xy: 275, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-container-full rotate: false - xy: 277, 957 + xy: 277, 959 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +container-icon-logic + rotate: false + xy: 277, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-conveyor-full rotate: false - xy: 275, 129 + xy: 292, 335 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-0 rotate: false - xy: 275, 129 + xy: 292, 335 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conveyor-icon-logic + rotate: false + xy: 292, 335 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-craters-full rotate: false - xy: 275, 95 + xy: 292, 301 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cryofluid-mixer-full rotate: false - xy: 1, 631 + xy: 1, 633 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +cryofluid-mixer-icon-logic + rotate: false + xy: 1, 633 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-cultivator-full rotate: false - xy: 343, 957 + xy: 343, 959 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +cultivator-icon-logic + rotate: false + xy: 343, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-dacite-boulder-full rotate: false - xy: 1427, 709 + xy: 1427, 711 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-dacite-full rotate: false - xy: 275, 61 + xy: 289, 267 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dacite-wall-full rotate: false - xy: 275, 27 + xy: 289, 233 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-metal-full rotate: false - xy: 292, 333 + xy: 289, 199 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-full rotate: false - xy: 292, 299 + xy: 303, 369 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dirt-full rotate: false - xy: 289, 265 + xy: 309, 165 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dirt-wall-full rotate: false - xy: 289, 231 + xy: 309, 131 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dune-wall-full rotate: false - xy: 289, 197 + xy: 309, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-duo-full rotate: false - xy: 303, 367 + xy: 309, 63 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +duo-icon-logic + rotate: false + xy: 309, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-grass-full rotate: false - xy: 309, 163 + xy: 309, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-hail-full rotate: false - xy: 309, 129 + xy: 326, 335 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +hail-icon-logic + rotate: false + xy: 326, 335 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-hotrock-full rotate: false - xy: 309, 95 + xy: 326, 301 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-full rotate: false - xy: 309, 61 + xy: 323, 267 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-snow-full rotate: false - xy: 309, 27 + xy: 323, 233 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-wall-full rotate: false - xy: 326, 333 + xy: 323, 199 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-lancer-full rotate: false - xy: 1, 565 + xy: 1, 567 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +lancer-icon-logic + rotate: false + xy: 1, 567 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-liquid-router-full rotate: false - xy: 326, 299 + xy: 337, 369 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-router-icon-logic + rotate: false + xy: 337, 369 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-magmarock-full rotate: false - xy: 323, 265 + xy: 343, 165 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-mechanical-drill-full rotate: false - xy: 409, 957 + xy: 409, 959 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +mechanical-drill-icon-logic + rotate: false + xy: 409, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-metal-floor-damaged-full rotate: false - xy: 323, 231 + xy: 343, 131 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-moss-full rotate: false - xy: 337, 367 + xy: 343, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-mud-full rotate: false - xy: 343, 163 + xy: 343, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-coal-full rotate: false - xy: 343, 129 + xy: 360, 335 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-copper-full rotate: false - xy: 343, 95 + xy: 360, 301 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-lead-full rotate: false - xy: 343, 61 + xy: 357, 267 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-scrap-full rotate: false - xy: 343, 27 + xy: 357, 233 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-thorium-full rotate: false - xy: 360, 333 + xy: 357, 199 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-titanium-full rotate: false - xy: 360, 299 + xy: 371, 369 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-parallax-full rotate: false - xy: 1, 499 + xy: 1, 501 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +parallax-icon-logic + rotate: false + xy: 1, 501 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-pebbles-full rotate: false - xy: 357, 265 + xy: 377, 165 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-phase-weaver-full rotate: false - xy: 475, 957 + xy: 475, 959 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +phase-weaver-icon-logic + rotate: false + xy: 475, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-plated-conduit-full rotate: false - xy: 357, 231 + xy: 377, 131 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plated-conduit-icon-logic + rotate: false + xy: 377, 131 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pneumatic-drill-full rotate: false - xy: 1, 433 + xy: 1, 435 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +pneumatic-drill-icon-logic + rotate: false + xy: 1, 435 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-pulse-conduit-full rotate: false - xy: 357, 197 + xy: 377, 97 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pulse-conduit-icon-logic + rotate: false + xy: 377, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pulverizer-full rotate: false - xy: 371, 367 + xy: 377, 63 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pulverizer-icon-logic + rotate: false + xy: 377, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-repair-point-full rotate: false - xy: 377, 163 + xy: 377, 29 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +repair-point-icon-logic + rotate: false + xy: 377, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-salt-wall-full rotate: false - xy: 377, 129 + xy: 394, 335 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-salvo-full rotate: false - xy: 541, 957 + xy: 541, 959 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +salvo-icon-logic + rotate: false + xy: 541, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-sand-boulder-full rotate: false - xy: 377, 95 + xy: 394, 301 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sand-full rotate: false - xy: 377, 61 + xy: 391, 267 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sand-wall-full rotate: false - xy: 377, 27 + xy: 391, 233 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scatter-full rotate: false - xy: 1, 367 + xy: 1, 369 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +scatter-icon-logic + rotate: false + xy: 1, 369 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-scorch-full rotate: false - xy: 394, 333 + xy: 391, 199 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +scorch-icon-logic + rotate: false + xy: 391, 199 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-full rotate: false - xy: 394, 299 + xy: 405, 369 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall1 rotate: false - xy: 394, 299 + xy: 405, 369 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +scrap-wall-icon-logic + rotate: false + xy: 405, 369 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-large-full rotate: false - xy: 607, 957 + xy: 607, 959 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +scrap-wall-large-icon-logic + rotate: false + xy: 607, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-segment-full rotate: false - xy: 1, 301 + xy: 1, 303 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +segment-icon-logic + rotate: false + xy: 1, 303 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-shale-boulder-full rotate: false - xy: 391, 231 + xy: 411, 131 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shale-full rotate: false - xy: 391, 197 + xy: 411, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shale-wall-full rotate: false - xy: 405, 367 + xy: 411, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shrubs-full rotate: false - xy: 411, 163 + xy: 411, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-snow-boulder-full rotate: false - xy: 1477, 709 + xy: 1477, 711 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-snow-full rotate: false - xy: 411, 129 + xy: 428, 335 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-snow-wall-full rotate: false - xy: 411, 95 + xy: 428, 301 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spore-cluster-full rotate: false - xy: 1987, 431 + xy: 1987, 433 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-spore-moss-full rotate: false - xy: 411, 61 + xy: 425, 267 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spore-press-full rotate: false - xy: 673, 957 + xy: 673, 959 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +spore-press-icon-logic + rotate: false + xy: 673, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-spore-wall-full rotate: false - xy: 411, 27 + xy: 425, 233 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-steam-generator-full rotate: false - xy: 1, 235 + xy: 1, 237 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +steam-generator-icon-logic + rotate: false + xy: 1, 237 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-stone-full rotate: false - xy: 428, 333 + xy: 425, 199 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-stone-wall-full rotate: false - xy: 428, 299 + xy: 439, 369 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-swarmer-full rotate: false - xy: 739, 957 + xy: 739, 959 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +swarmer-icon-logic + rotate: false + xy: 739, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-tendrils-full rotate: false - xy: 425, 265 + xy: 445, 165 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-titanium-conveyor-full rotate: false - xy: 425, 231 + xy: 445, 131 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-0 rotate: false - xy: 425, 231 + xy: 445, 131 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-conveyor-icon-logic + rotate: false + xy: 445, 131 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-water-extractor-full rotate: false - xy: 1, 169 + xy: 1, 171 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +water-extractor-icon-logic + rotate: false + xy: 1, 171 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-wave-full rotate: false - xy: 805, 957 + xy: 805, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 +wave-icon-logic + rotate: false + xy: 805, 959 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +bryde-icon-logic + rotate: false + xy: 473, 369 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +coal-icon-logic + rotate: false + xy: 479, 131 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-coal-medium + rotate: false + xy: 479, 131 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 command-center-team-crux rotate: false - xy: 937, 957 + xy: 937, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 command-center-team-sharded rotate: false - xy: 1003, 957 + xy: 1003, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 container-team-crux rotate: false - xy: 1201, 957 + xy: 1201, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 container-team-sharded rotate: false - xy: 1267, 957 + xy: 1267, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 +copper-icon-logic + rotate: false + xy: 581, 165 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-copper-medium + rotate: false + xy: 581, 165 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +corvus-icon-logic + rotate: false + xy: 133, 407 + size: 31, 20 + orig: 31, 20 + offset: 0, 0 + index: -1 corvus-joint rotate: false - xy: 67, 240 + xy: 67, 242 size: 60, 60 orig: 60, 60 offset: 0, 0 index: -1 corvus-leg rotate: false - xy: 949, 495 + xy: 949, 497 size: 30, 68 orig: 30, 68 offset: 0, 0 index: -1 corvus-leg-base rotate: false - xy: 307, 635 + xy: 949, 431 size: 30, 64 orig: 30, 64 offset: 0, 0 index: -1 cracks-1-0 rotate: false - xy: 564, 299 + xy: 581, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-1 rotate: false - xy: 561, 265 + xy: 581, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-2 rotate: false - xy: 561, 231 + xy: 581, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-3 rotate: false - xy: 561, 197 + xy: 598, 335 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-4 rotate: false - xy: 575, 367 + xy: 598, 301 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-5 rotate: false - xy: 581, 163 + xy: 595, 267 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-6 rotate: false - xy: 581, 129 + xy: 595, 233 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-7 rotate: false - xy: 581, 95 + xy: 595, 199 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-2-0 rotate: false - xy: 1399, 957 + xy: 1399, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-1 rotate: false - xy: 1465, 957 + xy: 1465, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-2 rotate: false - xy: 1531, 957 + xy: 1531, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-3 rotate: false - xy: 1597, 957 + xy: 1597, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-4 rotate: false - xy: 1663, 957 + xy: 1663, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-5 rotate: false - xy: 1729, 957 + xy: 1729, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-6 rotate: false - xy: 1795, 957 + xy: 1795, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-7 rotate: false - xy: 1861, 957 + xy: 1861, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 +crawler-icon-logic + rotate: false + xy: 609, 369 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 crawler-leg rotate: false - xy: 1777, 709 + xy: 1777, 711 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-outline rotate: false - xy: 1827, 709 + xy: 1827, 711 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-wreck0 rotate: false - xy: 1877, 709 + xy: 1877, 711 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-wreck1 rotate: false - xy: 1927, 709 + xy: 1927, 711 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-wreck2 rotate: false - xy: 647, 653 + xy: 647, 655 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 +cryofluid-icon-logic + rotate: false + xy: 615, 131 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-cryofluid-medium + rotate: false + xy: 615, 131 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dagger-icon-logic + rotate: false + xy: 615, 97 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 dagger-leg rotate: false - xy: 897, 657 + xy: 897, 659 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-outline rotate: false - xy: 947, 659 + xy: 947, 661 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-wreck0 rotate: false - xy: 997, 659 + xy: 997, 661 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-wreck1 rotate: false - xy: 1047, 659 + xy: 1047, 661 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-wreck2 rotate: false - xy: 1097, 659 + xy: 1097, 661 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 duo rotate: false - xy: 595, 231 + xy: 629, 267 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +eclipse-icon-logic + rotate: false + xy: 629, 233 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 eruption-outline rotate: false - xy: 1247, 643 + xy: 1247, 645 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 flamethrower-outline rotate: false - xy: 1397, 651 + xy: 1397, 653 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 +flare-icon-logic + rotate: false + xy: 629, 199 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 flare-outline rotate: false - xy: 1497, 659 + xy: 1497, 661 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flare-wreck0 rotate: false - xy: 1547, 659 + xy: 1547, 661 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flare-wreck1 rotate: false - xy: 1597, 659 + xy: 1597, 661 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flare-wreck2 rotate: false - xy: 1647, 659 + xy: 1647, 661 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 +fortress-icon-logic + rotate: false + xy: 241, 4 + size: 32, 25 + orig: 32, 25 + offset: 0, 0 + index: -1 +gamma-icon-logic + rotate: false + xy: 643, 369 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 gamma-wreck1 rotate: false - xy: 1, 953 + xy: 1, 955 size: 68, 68 orig: 68, 68 offset: 0, 0 index: -1 gamma-wreck2 rotate: false - xy: 1, 883 + xy: 1, 885 size: 68, 68 orig: 68, 68 offset: 0, 0 index: -1 +graphite-icon-logic + rotate: false + xy: 649, 165 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-graphite-medium + rotate: false + xy: 649, 165 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 hail rotate: false - xy: 595, 197 + xy: 649, 131 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 heal-shotgun-weapon-outline rotate: false - xy: 875, 707 + xy: 875, 709 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 heal-weapon-mount-outline rotate: false - xy: 1797, 659 + xy: 1797, 661 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 heal-weapon-outline rotate: false - xy: 1847, 659 + xy: 1847, 661 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -item-blast-compound-large +horizon-icon-logic rotate: false - xy: 1987, 389 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -item-blast-compound-medium - rotate: false - xy: 615, 27 + xy: 649, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +item-blast-compound-large + rotate: false + xy: 1987, 391 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 item-blast-compound-small rotate: false - xy: 1993, 891 + xy: 343, 3 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-blast-compound-tiny rotate: false - xy: 2029, 455 + xy: 2029, 457 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-blast-compound-xlarge rotate: false - xy: 1897, 659 + xy: 1897, 661 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-coal-large rotate: false - xy: 1797, 417 + xy: 1797, 419 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -item-coal-medium - rotate: false - xy: 632, 299 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-coal-small rotate: false - xy: 133, 401 + xy: 306, 575 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-coal-tiny rotate: false - xy: 1923, 425 + xy: 1923, 427 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-coal-xlarge rotate: false - xy: 1947, 659 + xy: 1947, 661 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-copper-large rotate: false - xy: 1839, 417 + xy: 1839, 419 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -item-copper-medium - rotate: false - xy: 629, 231 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-copper-small rotate: false - xy: 2019, 891 + xy: 949, 371 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-copper-tiny rotate: false - xy: 1275, 575 + xy: 1275, 577 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-copper-xlarge rotate: false - xy: 1997, 673 + xy: 1997, 675 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-graphite-large rotate: false - xy: 1881, 401 + xy: 1881, 403 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -item-graphite-medium - rotate: false - xy: 643, 367 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-graphite-small rotate: false - xy: 159, 401 + xy: 1040, 501 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-graphite-tiny rotate: false - xy: 417, 683 + xy: 2027, 901 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-graphite-xlarge rotate: false - xy: 1997, 623 + xy: 1997, 625 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-lead-large rotate: false - xy: 897, 565 + xy: 897, 567 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-lead-medium rotate: false - xy: 649, 129 + xy: 683, 131 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +lead-icon-logic + rotate: false + xy: 683, 131 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead-small rotate: false - xy: 273, 607 + xy: 981, 433 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-lead-tiny rotate: false - xy: 949, 347 + xy: 511, 685 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-lead-xlarge rotate: false - xy: 1297, 601 + xy: 1297, 603 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-metaglass-large rotate: false - xy: 939, 565 + xy: 939, 567 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-metaglass-medium rotate: false - xy: 649, 61 + xy: 683, 63 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +metaglass-icon-logic + rotate: false + xy: 683, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass-small rotate: false - xy: 949, 469 + xy: 1009, 467 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-metaglass-tiny rotate: false - xy: 1085, 507 + xy: 885, 5 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-metaglass-xlarge rotate: false - xy: 1347, 601 + xy: 1347, 603 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-phase-fabric-large rotate: false - xy: 981, 567 + xy: 981, 569 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-phase-fabric-medium rotate: false - xy: 666, 333 + xy: 700, 335 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-fabric-icon-logic + rotate: false + xy: 700, 335 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric-small rotate: false - xy: 981, 499 + xy: 369, 3 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-phase-fabric-tiny rotate: false - xy: 2029, 437 + xy: 1170, 509 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-phase-fabric-xlarge rotate: false - xy: 1397, 601 + xy: 1397, 603 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-plastanium-large rotate: false - xy: 1023, 567 + xy: 1023, 569 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-plastanium-medium rotate: false - xy: 663, 265 + xy: 697, 267 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plastanium-icon-logic + rotate: false + xy: 697, 267 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium-small rotate: false - xy: 339, 675 + xy: 332, 575 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-plastanium-tiny rotate: false - xy: 1923, 407 + xy: 499, 11 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-plastanium-xlarge rotate: false - xy: 1447, 609 + xy: 1447, 611 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-pyratite-large rotate: false - xy: 1065, 567 + xy: 1065, 569 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-pyratite-medium rotate: false - xy: 663, 197 + xy: 697, 199 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pyratite-icon-logic + rotate: false + xy: 697, 199 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite-small rotate: false - xy: 949, 443 + xy: 949, 345 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-pyratite-tiny rotate: false - xy: 1275, 557 + xy: 460, 583 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-pyratite-xlarge rotate: false - xy: 1497, 609 + xy: 1497, 611 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-sand-large rotate: false - xy: 1107, 567 + xy: 1107, 569 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-sand-medium rotate: false - xy: 683, 163 + xy: 717, 165 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +sand-icon-logic + rotate: false + xy: 717, 165 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand-small rotate: false - xy: 1007, 499 + xy: 1066, 501 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-sand-tiny rotate: false - xy: 417, 665 + xy: 2029, 439 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-sand-xlarge rotate: false - xy: 1547, 609 + xy: 1547, 611 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-scrap-large rotate: false - xy: 1149, 567 + xy: 1149, 569 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-scrap-medium rotate: false - xy: 683, 95 + xy: 717, 97 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +scrap-icon-logic + rotate: false + xy: 717, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap-small rotate: false - xy: 339, 649 + xy: 395, 3 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-scrap-tiny rotate: false - xy: 435, 683 + xy: 1923, 409 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-scrap-xlarge rotate: false - xy: 1597, 609 + xy: 1597, 611 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-silicon-large rotate: false - xy: 1191, 551 + xy: 1191, 553 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-silicon-medium rotate: false - xy: 683, 27 + xy: 717, 29 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +silicon-icon-logic + rotate: false + xy: 717, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon-small rotate: false - xy: 365, 675 + xy: 358, 575 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-silicon-tiny rotate: false - xy: 949, 329 + xy: 1275, 559 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-silicon-xlarge rotate: false - xy: 1647, 609 + xy: 1647, 611 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-spore-pod-large rotate: false - xy: 1233, 551 + xy: 1233, 553 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-spore-pod-medium rotate: false - xy: 697, 265 + xy: 731, 267 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +spore-pod-icon-logic + rotate: false + xy: 731, 267 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod-small rotate: false - xy: 949, 417 + xy: 1092, 501 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-spore-pod-tiny rotate: false - xy: 1103, 507 + xy: 511, 667 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-spore-pod-xlarge rotate: false - xy: 1697, 609 + xy: 1697, 611 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-surge-alloy-large rotate: false - xy: 981, 525 + xy: 981, 527 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-surge-alloy-medium rotate: false - xy: 697, 197 + xy: 731, 199 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +surge-alloy-icon-logic + rotate: false + xy: 731, 199 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy-small rotate: false - xy: 949, 391 + xy: 421, 3 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-surge-alloy-tiny rotate: false - xy: 2029, 419 + xy: 903, 5 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-surge-alloy-xlarge rotate: false - xy: 1747, 609 + xy: 1747, 611 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-thorium-large rotate: false - xy: 1023, 525 + xy: 1023, 527 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-thorium-medium rotate: false - xy: 717, 163 + xy: 751, 165 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +thorium-icon-logic + rotate: false + xy: 751, 165 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium-small rotate: false - xy: 1033, 499 + xy: 384, 575 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-thorium-tiny rotate: false - xy: 435, 665 + xy: 517, 11 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-thorium-xlarge rotate: false - xy: 1797, 609 + xy: 1797, 611 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-titanium-large rotate: false - xy: 1065, 525 + xy: 1065, 527 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-titanium-medium rotate: false - xy: 717, 95 + xy: 751, 97 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-icon-logic + rotate: false + xy: 751, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium-small rotate: false - xy: 365, 649 + xy: 1118, 501 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-titanium-tiny rotate: false - xy: 453, 683 + xy: 478, 583 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-titanium-xlarge rotate: false - xy: 1847, 609 + xy: 1847, 611 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 lancer rotate: false - xy: 1069, 891 + xy: 1069, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 large-artillery-outline rotate: false - xy: 1947, 591 + xy: 1947, 593 size: 48, 66 orig: 48, 66 offset: 0, 0 index: -1 large-weapon-outline rotate: false - xy: 1447, 559 + xy: 1447, 561 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-cryofluid-large rotate: false - xy: 1107, 525 + xy: 1107, 527 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -liquid-cryofluid-medium - rotate: false - xy: 734, 299 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 liquid-cryofluid-small rotate: false - xy: 391, 675 + xy: 447, 3 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-cryofluid-tiny rotate: false - xy: 1121, 507 + xy: 2029, 421 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-cryofluid-xlarge rotate: false - xy: 1497, 559 + xy: 1497, 561 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-oil-large rotate: false - xy: 1149, 525 + xy: 1149, 527 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-oil-medium rotate: false - xy: 731, 197 + xy: 765, 233 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +oil-icon-logic + rotate: false + xy: 765, 233 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil-small rotate: false - xy: 949, 365 + xy: 410, 575 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-oil-tiny rotate: false - xy: 2029, 401 + xy: 511, 649 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-oil-xlarge rotate: false - xy: 1547, 559 + xy: 1547, 561 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-slag-large rotate: false - xy: 1191, 509 + xy: 1191, 511 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-slag-medium rotate: false - xy: 768, 333 + xy: 785, 63 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +slag-icon-logic + rotate: false + xy: 785, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag-small rotate: false - xy: 1059, 499 + xy: 1144, 501 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-slag-tiny rotate: false - xy: 453, 665 + xy: 921, 5 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-slag-xlarge rotate: false - xy: 1597, 559 + xy: 1597, 561 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-water-large rotate: false - xy: 1233, 509 + xy: 1233, 511 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-water-medium rotate: false - xy: 765, 197 + xy: 813, 551 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +water-icon-logic + rotate: false + xy: 813, 551 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water-small rotate: false - xy: 391, 649 + xy: 473, 3 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-water-tiny rotate: false - xy: 471, 683 + xy: 535, 11 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-water-xlarge rotate: false - xy: 1647, 559 + xy: 1647, 561 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 +mace-icon-logic + rotate: false + xy: 847, 539 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 mace-leg rotate: false - xy: 1531, 891 + xy: 1531, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-outline rotate: false - xy: 1597, 891 + xy: 1597, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-wreck0 rotate: false - xy: 1663, 891 + xy: 1663, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-wreck1 rotate: false - xy: 1729, 891 + xy: 1729, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-wreck2 rotate: false - xy: 1795, 891 + xy: 1795, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 +mega-icon-logic + rotate: false + xy: 881, 533 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +minke-icon-logic + rotate: false + xy: 1011, 493 + size: 27, 32 + orig: 27, 32 + offset: 0, 0 + index: -1 missiles-mount-outline rotate: false - xy: 1797, 559 + xy: 1797, 561 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 +mono-icon-logic + rotate: false + xy: 915, 465 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 mono-outline rotate: false - xy: 1947, 541 + xy: 1947, 543 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mono-wreck0 rotate: false - xy: 1997, 523 + xy: 1997, 525 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mono-wreck1 rotate: false - xy: 847, 605 + xy: 847, 607 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mono-wreck2 rotate: false - xy: 897, 607 + xy: 897, 609 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mount-purple-weapon-outline rotate: false - xy: 997, 609 + xy: 997, 611 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mount-weapon-outline rotate: false - xy: 1097, 609 + xy: 1097, 611 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 +nova-icon-logic + rotate: false + xy: 813, 449 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 nova-leg rotate: false - xy: 1197, 593 + xy: 1197, 595 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 nova-outline rotate: false - xy: 125, 70 + xy: 125, 72 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-wreck0 rotate: false - xy: 125, 12 + xy: 125, 14 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-wreck1 rotate: false - xy: 183, 128 + xy: 183, 130 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-wreck2 rotate: false - xy: 183, 70 + xy: 183, 72 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 +oct-icon-logic + rotate: false + xy: 847, 437 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +omura-icon-logic + rotate: false + xy: 436, 567 + size: 22, 32 + orig: 22, 32 + offset: 0, 0 + index: -1 parallax rotate: false - xy: 603, 825 + xy: 603, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 +poly-icon-logic + rotate: false + xy: 870, 261 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 poly-outline rotate: false - xy: 241, 701 + xy: 241, 703 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 poly-wreck0 rotate: false - xy: 299, 701 + xy: 299, 703 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 poly-wreck1 rotate: false - xy: 357, 701 + xy: 357, 703 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 poly-wreck2 rotate: false - xy: 415, 701 + xy: 415, 703 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 +pulsar-icon-logic + rotate: false + xy: 833, 204 + size: 32, 27 + orig: 32, 27 + offset: 0, 0 + index: -1 pulsar-leg rotate: false - xy: 1395, 825 + xy: 1395, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pulsar-outline rotate: false - xy: 1, 823 + xy: 1, 825 size: 68, 58 orig: 68, 58 offset: 0, 0 index: -1 pulsar-wreck0 rotate: false - xy: 71, 903 + xy: 71, 905 size: 68, 58 orig: 68, 58 offset: 0, 0 index: -1 pulsar-wreck1 rotate: false - xy: 141, 963 + xy: 141, 965 size: 68, 58 orig: 68, 58 offset: 0, 0 index: -1 pulsar-wreck2 rotate: false - xy: 1, 763 + xy: 1, 765 size: 68, 58 orig: 68, 58 offset: 0, 0 index: -1 -repair-point +quad-icon-logic rotate: false - xy: 799, 209 + xy: 819, 1 + size: 31, 31 + orig: 31, 31 + offset: 0, 0 + index: -1 +quasar-icon-logic + rotate: false + xy: 819, 34 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +reign-icon-logic + rotate: false + xy: 852, 1 + size: 31, 20 + orig: 31, 20 + offset: 0, 0 + index: -1 +repair-point + rotate: false + xy: 853, 159 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +risso-icon-logic + rotate: false + xy: 949, 397 + size: 28, 32 + orig: 28, 32 + offset: 0, 0 + index: -1 salvo rotate: false - xy: 1791, 825 + xy: 1791, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scatter rotate: false - xy: 1923, 825 + xy: 1923, 827 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 +scepter-icon-logic + rotate: false + xy: 275, 1 + size: 32, 26 + orig: 32, 26 + offset: 0, 0 + index: -1 scepter-weapon-outline rotate: false - xy: 589, 655 + xy: 589, 657 size: 56, 102 orig: 56, 102 offset: 0, 0 index: -1 scorch rotate: false - xy: 870, 259 + xy: 887, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 segment rotate: false - xy: 405, 759 + xy: 405, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 +sei-icon-logic + rotate: false + xy: 921, 125 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +shock-mine-icon-logic + rotate: false + xy: 938, 295 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 small-basic-weapon-outline rotate: false - xy: 1347, 551 + xy: 1347, 553 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 small-mount-weapon-outline rotate: false - xy: 1447, 509 + xy: 1447, 511 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spiroct-foot rotate: false - xy: 1897, 443 + xy: 1897, 445 size: 46, 46 orig: 46, 46 offset: 0, 0 index: -1 +spiroct-icon-logic + rotate: false + xy: 273, 574 + size: 31, 25 + orig: 31, 25 + offset: 0, 0 + index: -1 spiroct-joint rotate: false - xy: 819, 61 + xy: 935, 193 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spiroct-leg rotate: false - xy: 1, 1 + xy: 1, 3 size: 48, 34 orig: 48, 34 offset: 0, 0 index: -1 spiroct-leg-base rotate: false - xy: 1647, 523 + xy: 1647, 525 size: 48, 34 orig: 48, 34 offset: 0, 0 index: -1 spiroct-weapon-outline rotate: false - xy: 1747, 501 + xy: 1747, 503 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 splash-0 rotate: false - xy: 819, 27 + xy: 955, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-1 rotate: false - xy: 853, 157 + xy: 955, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-10 rotate: false - xy: 887, 21 + xy: 205, 727 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-11 rotate: false - xy: 921, 157 + xy: 205, 693 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-2 rotate: false - xy: 853, 123 + xy: 955, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-3 rotate: false - xy: 887, 157 + xy: 955, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-4 rotate: false - xy: 853, 89 + xy: 955, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-5 rotate: false - xy: 887, 123 + xy: 171, 711 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-6 rotate: false - xy: 853, 55 + xy: 171, 677 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-7 rotate: false - xy: 887, 89 + xy: 171, 643 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-8 rotate: false - xy: 887, 55 + xy: 171, 609 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-9 rotate: false - xy: 853, 21 + xy: 171, 575 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 swarmer rotate: false - xy: 1593, 759 + xy: 1593, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 +toxopid-icon-logic + rotate: false + xy: 981, 459 + size: 26, 32 + orig: 26, 32 + offset: 0, 0 + index: -1 unit-alpha-full rotate: false - xy: 1797, 509 + xy: 1797, 511 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-beta-full rotate: false - xy: 647, 703 + xy: 647, 705 size: 56, 54 orig: 56, 54 offset: 0, 0 index: -1 unit-crawler-full rotate: false - xy: 1847, 509 + xy: 1847, 511 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-dagger-full rotate: false - xy: 1647, 473 + xy: 1647, 475 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-flare-full rotate: false - xy: 1897, 491 + xy: 1897, 493 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-gamma-full rotate: false - xy: 71, 833 + xy: 71, 835 size: 68, 68 orig: 68, 68 offset: 0, 0 index: -1 unit-mace-full rotate: false - xy: 1857, 759 + xy: 1857, 761 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 unit-mono-full rotate: false - xy: 1947, 491 + xy: 1947, 493 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-nova-full rotate: false - xy: 705, 701 + xy: 705, 703 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 unit-poly-full rotate: false - xy: 763, 701 + xy: 763, 703 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 unit-pulsar-full rotate: false - xy: 141, 903 + xy: 141, 905 size: 68, 58 orig: 68, 58 offset: 0, 0 index: -1 +vela-icon-logic + rotate: false + xy: 309, 1 + size: 32, 26 + orig: 32, 26 + offset: 0, 0 + index: -1 wave rotate: false - xy: 67, 499 + xy: 67, 501 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 +zenith-icon-logic + rotate: false + xy: 239, 567 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 zenith-missiles-outline rotate: false - xy: 1847, 459 + xy: 1847, 461 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-blast-compound rotate: false - xy: 615, 61 + xy: 663, 267 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal rotate: false - xy: 632, 333 + xy: 663, 233 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper rotate: false - xy: 629, 265 + xy: 663, 199 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite rotate: false - xy: 629, 197 + xy: 677, 369 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead rotate: false - xy: 649, 163 + xy: 683, 165 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass rotate: false - xy: 649, 95 + xy: 683, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric rotate: false - xy: 649, 27 + xy: 683, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium rotate: false - xy: 666, 299 + xy: 700, 301 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite rotate: false - xy: 663, 231 + xy: 697, 233 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand rotate: false - xy: 677, 367 + xy: 711, 369 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap rotate: false - xy: 683, 129 + xy: 717, 131 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon rotate: false - xy: 683, 61 + xy: 717, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod rotate: false - xy: 700, 299 + xy: 734, 301 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy rotate: false - xy: 697, 231 + xy: 731, 233 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium rotate: false - xy: 711, 367 + xy: 745, 369 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium rotate: false - xy: 717, 129 + xy: 751, 131 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid rotate: false - xy: 734, 333 + xy: 768, 335 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil rotate: false - xy: 731, 231 + xy: 765, 267 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag rotate: false - xy: 751, 27 + xy: 785, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water rotate: false - xy: 765, 231 + xy: 847, 573 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 blank rotate: false - xy: 799, 296 + xy: 799, 298 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 shape-3 rotate: false - xy: 67, 302 + xy: 67, 304 size: 63, 63 orig: 63, 63 offset: 0, 0 index: -1 alpha rotate: false - xy: 927, 709 + xy: 927, 711 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-cell rotate: false - xy: 977, 709 + xy: 977, 711 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 atrax-base rotate: false - xy: 211, 957 + xy: 211, 959 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 beta rotate: false - xy: 67, 76 + xy: 67, 78 size: 56, 54 orig: 56, 54 offset: 0, 0 index: -1 beta-cell rotate: false - xy: 1327, 709 + xy: 1327, 711 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler rotate: false - xy: 1627, 709 + xy: 1627, 711 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-base rotate: false - xy: 1677, 709 + xy: 1677, 711 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-cell rotate: false - xy: 1727, 709 + xy: 1727, 711 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger rotate: false - xy: 797, 651 + xy: 797, 653 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-base rotate: false - xy: 847, 655 + xy: 847, 657 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flare rotate: false - xy: 1447, 659 + xy: 1447, 661 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 fortress-base rotate: false - xy: 805, 891 + xy: 805, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 gamma-cell rotate: false - xy: 129, 244 + xy: 129, 246 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 mace rotate: false - xy: 1333, 891 + xy: 1333, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-base rotate: false - xy: 1399, 891 + xy: 1399, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-cell rotate: false - xy: 1465, 891 + xy: 1465, 893 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mono rotate: false - xy: 1847, 559 + xy: 1847, 561 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mono-cell rotate: false - xy: 1897, 541 + xy: 1897, 543 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 nova rotate: false - xy: 129, 186 + xy: 129, 188 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-base rotate: false - xy: 1147, 609 + xy: 1147, 611 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 nova-cell rotate: false - xy: 125, 128 + xy: 125, 130 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 poly rotate: false - xy: 183, 12 + xy: 183, 14 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 poly-cell rotate: false - xy: 132, 309 + xy: 132, 311 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 power-cell rotate: false - xy: 473, 701 + xy: 473, 703 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 pulsar rotate: false - xy: 71, 963 + xy: 71, 965 size: 68, 58 orig: 68, 58 offset: 0, 0 index: -1 pulsar-base rotate: false - xy: 1247, 593 + xy: 1247, 595 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 pulsar-cell rotate: false - xy: 67, 190 + xy: 67, 192 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 vanguard rotate: false - xy: 1997, 473 + xy: 1997, 475 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 vanguard-cell rotate: false - xy: 1697, 451 + xy: 1697, 453 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 artillery rotate: false - xy: 1227, 701 + xy: 1227, 703 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 eruption rotate: false - xy: 1197, 643 + xy: 1197, 645 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 flakgun rotate: false - xy: 1297, 651 + xy: 1297, 653 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flamethrower rotate: false - xy: 1347, 651 + xy: 1347, 653 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 heal-shotgun-weapon rotate: false - xy: 1993, 917 + xy: 1993, 919 size: 50, 50 orig: 50, 50 offset: 0, 0 index: -1 heal-weapon rotate: false - xy: 1697, 659 + xy: 1697, 661 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 heal-weapon-mount rotate: false - xy: 1747, 659 + xy: 1747, 661 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 large-artillery rotate: false - xy: 1897, 591 + xy: 1897, 593 size: 48, 66 orig: 48, 66 offset: 0, 0 index: -1 large-weapon rotate: false - xy: 1997, 573 + xy: 1997, 575 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 missiles rotate: false - xy: 1697, 559 + xy: 1697, 561 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 missiles-mount rotate: false - xy: 1747, 559 + xy: 1747, 561 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mount-purple-weapon rotate: false - xy: 947, 609 + xy: 947, 611 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mount-weapon rotate: false - xy: 1047, 609 + xy: 1047, 611 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 scepter-weapon rotate: false - xy: 531, 655 + xy: 531, 657 size: 56, 102 orig: 56, 102 offset: 0, 0 index: -1 small-basic-weapon rotate: false - xy: 1297, 551 + xy: 1297, 553 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 small-mount-weapon rotate: false - xy: 1397, 551 + xy: 1397, 553 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 small-weapon rotate: false - xy: 1497, 509 + xy: 1497, 511 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spiroct-weapon rotate: false - xy: 1697, 501 + xy: 1697, 503 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 weapon rotate: false - xy: 1747, 451 + xy: 1747, 453 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 zenith-missiles rotate: false - xy: 1797, 459 + xy: 1797, 461 size: 48, 48 orig: 48, 48 offset: 0, 0 diff --git a/core/assets/sprites/fallback/sprites3.png b/core/assets/sprites/fallback/sprites3.png index 05f78947ea..eb6e16d4d8 100644 Binary files a/core/assets/sprites/fallback/sprites3.png and b/core/assets/sprites/fallback/sprites3.png differ diff --git a/core/assets/sprites/fallback/sprites4.png b/core/assets/sprites/fallback/sprites4.png index 45619c04fa..368d240ff6 100644 Binary files a/core/assets/sprites/fallback/sprites4.png and b/core/assets/sprites/fallback/sprites4.png differ diff --git a/core/assets/sprites/fallback/sprites5.png b/core/assets/sprites/fallback/sprites5.png index 87ee3a7b46..a54d30605b 100644 Binary files a/core/assets/sprites/fallback/sprites5.png and b/core/assets/sprites/fallback/sprites5.png differ diff --git a/core/assets/sprites/fallback/sprites8.png b/core/assets/sprites/fallback/sprites8.png index 212d169c38..5afb523ea5 100644 Binary files a/core/assets/sprites/fallback/sprites8.png and b/core/assets/sprites/fallback/sprites8.png differ diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas index 75be83066e..00e5951cd0 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -11,6 +11,13 @@ launch-pad orig: 96, 96 offset: 0, 0 index: -1 +launch-pad-icon-logic + rotate: false + xy: 1951, 2545 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 launch-pad-large rotate: false xy: 1703, 3035 @@ -39,6 +46,13 @@ force-projector orig: 96, 96 offset: 0, 0 index: -1 +force-projector-icon-logic + rotate: false + xy: 2918, 2757 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 force-projector-top rotate: false xy: 1657, 2643 @@ -53,6 +67,13 @@ mend-projector orig: 64, 64 offset: 0, 0 index: -1 +mend-projector-icon-logic + rotate: false + xy: 2029, 760 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 mend-projector-top rotate: false xy: 2091, 1156 @@ -62,14 +83,21 @@ mend-projector-top index: -1 mender rotate: false - xy: 3323, 2187 + xy: 2449, 472 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +mender-icon-logic + rotate: false + xy: 2449, 472 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mender-top rotate: false - xy: 2439, 812 + xy: 2449, 438 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -81,6 +109,13 @@ overdrive-dome orig: 96, 96 offset: 0, 0 index: -1 +overdrive-dome-icon-logic + rotate: false + xy: 2245, 2447 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 overdrive-dome-top rotate: false xy: 2343, 2447 @@ -95,6 +130,13 @@ overdrive-projector orig: 64, 64 offset: 0, 0 index: -1 +overdrive-projector-icon-logic + rotate: false + xy: 2095, 1090 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 overdrive-projector-top rotate: false xy: 2095, 1024 @@ -104,7 +146,7 @@ overdrive-projector-top index: -1 shock-mine rotate: false - xy: 3585, 2319 + xy: 2409, 2109 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -116,6 +158,13 @@ block-loader orig: 96, 96 offset: 0, 0 index: -1 +block-loader-icon-logic + rotate: false + xy: 1899, 2937 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-unloader rotate: false xy: 1644, 2741 @@ -123,499 +172,527 @@ block-unloader orig: 96, 96 offset: 0, 0 index: -1 +block-unloader-icon-logic + rotate: false + xy: 1644, 2741 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 bridge-arrow rotate: false - xy: 2361, 1746 + xy: 2361, 1644 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor rotate: false - xy: 2361, 1576 + xy: 2279, 684 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -bridge-conveyor-bridge - rotate: false - xy: 2361, 1542 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -bridge-conveyor-end - rotate: false - xy: 2279, 718 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -center +bridge-conveyor-icon-logic rotate: false xy: 2279, 684 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +bridge-conveyor-bridge + rotate: false + xy: 2279, 650 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +bridge-conveyor-end + rotate: false + xy: 2279, 616 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +center + rotate: false + xy: 2279, 548 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 armored-conveyor-0-0 - rotate: false - xy: 1981, 1518 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-armored-conveyor-full - rotate: false - xy: 1981, 1518 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -armored-conveyor-0-1 - rotate: false - xy: 1053, 8 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -armored-conveyor-0-2 - rotate: false - xy: 2319, 1160 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -armored-conveyor-0-3 rotate: false xy: 2277, 1076 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -armored-conveyor-1-0 +armored-conveyor-icon-logic + rotate: false + xy: 2277, 1076 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-armored-conveyor-full + rotate: false + xy: 2277, 1076 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-0-1 rotate: false xy: 1113, 2285 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -armored-conveyor-1-1 +armored-conveyor-0-2 rotate: false xy: 4005, 3587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -armored-conveyor-1-2 +armored-conveyor-0-3 rotate: false xy: 1087, 8 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -armored-conveyor-1-3 +armored-conveyor-1-0 rotate: false xy: 2319, 1126 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -armored-conveyor-2-0 +armored-conveyor-1-1 rotate: false xy: 2277, 1042 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -armored-conveyor-2-1 +armored-conveyor-1-2 rotate: false xy: 1113, 2251 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -armored-conveyor-2-2 +armored-conveyor-1-3 rotate: false xy: 4039, 3587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -armored-conveyor-2-3 +armored-conveyor-2-0 rotate: false xy: 1121, 8 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -armored-conveyor-3-0 +armored-conveyor-2-1 rotate: false xy: 2277, 1008 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -armored-conveyor-3-1 +armored-conveyor-2-2 rotate: false xy: 1155, 8 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -armored-conveyor-3-2 +armored-conveyor-2-3 rotate: false xy: 2277, 974 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -armored-conveyor-3-3 +armored-conveyor-3-0 rotate: false xy: 1189, 8 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -armored-conveyor-4-0 +armored-conveyor-3-1 rotate: false xy: 2277, 940 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -armored-conveyor-4-1 +armored-conveyor-3-2 rotate: false xy: 2277, 906 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -armored-conveyor-4-2 +armored-conveyor-3-3 rotate: false xy: 1654, 3015 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -armored-conveyor-4-3 +armored-conveyor-4-0 rotate: false xy: 3559, 2622 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +armored-conveyor-4-1 + rotate: false + xy: 3593, 2622 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-4-2 + rotate: false + xy: 2291, 80 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-4-3 + rotate: false + xy: 2291, 46 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 conveyor-0-1 - rotate: false - xy: 2347, 642 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-0-2 - rotate: false - xy: 2313, 608 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-0-3 - rotate: false - xy: 2347, 608 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-1-0 - rotate: false - xy: 2313, 574 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-1-1 - rotate: false - xy: 2347, 574 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-1-2 rotate: false xy: 2313, 540 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -conveyor-1-3 +conveyor-0-2 rotate: false xy: 2347, 540 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -conveyor-2-0 +conveyor-0-3 rotate: false xy: 2313, 506 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -conveyor-2-1 +conveyor-1-0 rotate: false xy: 2347, 506 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -conveyor-2-2 +conveyor-1-1 rotate: false xy: 2313, 472 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -conveyor-2-3 +conveyor-1-2 rotate: false xy: 2347, 472 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -conveyor-3-0 +conveyor-1-3 rotate: false xy: 2313, 438 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -conveyor-3-1 +conveyor-2-0 rotate: false xy: 2347, 438 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -conveyor-3-2 +conveyor-2-1 rotate: false xy: 2317, 404 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -conveyor-3-3 +conveyor-2-2 rotate: false xy: 2351, 404 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -conveyor-4-0 +conveyor-2-3 rotate: false xy: 2381, 710 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -conveyor-4-1 +conveyor-3-0 rotate: false xy: 2381, 676 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -conveyor-4-2 +conveyor-3-1 rotate: false xy: 2381, 642 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -conveyor-4-3 +conveyor-3-2 rotate: false xy: 2381, 608 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +conveyor-3-3 + rotate: false + xy: 2381, 574 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conveyor-4-0 + rotate: false + xy: 2381, 540 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conveyor-4-1 + rotate: false + xy: 2381, 506 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conveyor-4-2 + rotate: false + xy: 2381, 472 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conveyor-4-3 + rotate: false + xy: 2381, 438 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 plastanium-conveyor rotate: false - xy: 3347, 2337 + xy: 3391, 2235 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plastanium-conveyor-icon-logic + rotate: false + xy: 3391, 2235 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-0 rotate: false - xy: 3347, 2303 + xy: 3425, 2269 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-1 rotate: false - xy: 3381, 2337 + xy: 3391, 2201 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-2 rotate: false - xy: 3381, 2303 + xy: 3425, 2235 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-edge rotate: false - xy: 3415, 2337 + xy: 3459, 2269 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-stack rotate: false - xy: 3415, 2303 + xy: 3425, 2201 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-1 rotate: false - xy: 2511, 2109 + xy: 2429, 1939 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-2 rotate: false - xy: 2395, 2075 + xy: 2395, 1871 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-3 rotate: false - xy: 2395, 2041 + xy: 2497, 1973 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-0 rotate: false - xy: 2429, 2075 + xy: 2463, 1939 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-1 rotate: false - xy: 2395, 2007 + xy: 2429, 1905 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-2 rotate: false - xy: 2463, 2075 + xy: 2395, 1837 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-3 rotate: false - xy: 2429, 2041 + xy: 2497, 1939 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-0 rotate: false - xy: 2395, 1973 + xy: 2463, 1905 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-1 rotate: false - xy: 2497, 2075 + xy: 2429, 1871 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-2 rotate: false - xy: 2463, 2041 + xy: 2395, 1803 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-3 rotate: false - xy: 2429, 2007 + xy: 2497, 1905 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-0 rotate: false - xy: 2395, 1939 + xy: 2463, 1871 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-1 rotate: false - xy: 2497, 2041 + xy: 2429, 1837 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-2 rotate: false - xy: 2463, 2007 + xy: 2395, 1769 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-3 rotate: false - xy: 2429, 1973 + xy: 2497, 1871 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-0 rotate: false - xy: 2395, 1905 + xy: 2463, 1837 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-1 rotate: false - xy: 2497, 2007 + xy: 2429, 1803 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-2 rotate: false - xy: 2463, 1973 + xy: 2395, 1735 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-3 rotate: false - xy: 2429, 1939 + xy: 2497, 1837 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cross rotate: false - xy: 3085, 2227 + xy: 3279, 2391 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -627,16 +704,37 @@ distributor orig: 64, 64 offset: 0, 0 index: -1 +distributor-icon-logic + rotate: false + xy: 2845, 2331 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 inverted-sorter rotate: false - xy: 3245, 2357 + xy: 2413, 846 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +inverted-sorter-icon-logic + rotate: false + xy: 2413, 846 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 junction rotate: false - xy: 3211, 2283 + xy: 3221, 2215 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +junction-icon-logic + rotate: false + xy: 3221, 2215 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -650,7 +748,14 @@ mass-driver-base index: -1 overflow-gate rotate: false - xy: 2449, 710 + xy: 3415, 2337 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +overflow-gate-icon-logic + rotate: false + xy: 3415, 2337 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -706,49 +811,77 @@ payload-router-over index: -1 phase-conveyor rotate: false - xy: 2449, 540 + xy: 3483, 2303 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-conveyor-icon-logic + rotate: false + xy: 3483, 2303 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-arrow rotate: false - xy: 2449, 506 + xy: 3357, 2269 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-bridge rotate: false - xy: 2449, 472 + xy: 3357, 2235 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-end rotate: false - xy: 2449, 438 + xy: 3391, 2269 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 router rotate: false - xy: 3493, 2201 + xy: 3527, 2151 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +router-icon-logic + rotate: false + xy: 3527, 2151 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sorter rotate: false - xy: 3527, 2253 + xy: 2511, 2109 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +sorter-icon-logic + rotate: false + xy: 2511, 2109 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 underflow-gate rotate: false - xy: 2463, 1939 + xy: 2395, 1701 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +underflow-gate-icon-logic + rotate: false + xy: 2395, 1701 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -762,21 +895,21 @@ blast-drill index: -1 blast-drill-rim rotate: false - xy: 3263, 3099 + xy: 3393, 3099 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-rotator rotate: false - xy: 3393, 3099 + xy: 1899, 1018 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-top rotate: false - xy: 1899, 1018 + xy: 1899, 888 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -923,28 +1056,28 @@ water-extractor-top index: -1 block-border rotate: false - xy: 2353, 1152 + xy: 2387, 1152 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-middle rotate: false - xy: 2379, 914 + xy: 2345, 880 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-select rotate: false - xy: 1524, 2635 + xy: 2575, 2125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-liquid rotate: false - xy: 2279, 446 + xy: 2313, 642 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -958,161 +1091,175 @@ place-arrow index: -1 bridge-conduit rotate: false - xy: 2361, 1712 + xy: 2361, 1610 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -bridge-conduit-arrow - rotate: false - xy: 2361, 1678 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -bridge-conveyor-arrow - rotate: false - xy: 2361, 1678 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -bridge-conduit-bridge - rotate: false - xy: 2361, 1644 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -bridge-conduit-end +bridge-conduit-icon-logic rotate: false xy: 2361, 1610 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +bridge-conduit-arrow + rotate: false + xy: 2361, 1576 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +bridge-conveyor-arrow + rotate: false + xy: 2361, 1576 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +bridge-conduit-bridge + rotate: false + xy: 2361, 1542 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +bridge-conduit-end + rotate: false + xy: 2279, 718 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 conduit-bottom - rotate: false - xy: 2279, 582 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom-0 - rotate: false - xy: 2279, 548 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom-1 - rotate: false - xy: 2279, 514 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom-2 - rotate: false - xy: 2279, 480 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom-3 - rotate: false - xy: 2279, 480 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom-4 - rotate: false - xy: 2279, 480 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-top-0 rotate: false xy: 2313, 710 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -conduit-top-1 +conduit-bottom-0 rotate: false xy: 2347, 710 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -conduit-top-2 +conduit-bottom-1 rotate: false xy: 2313, 676 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -conduit-top-3 +conduit-bottom-2 rotate: false xy: 2347, 676 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +conduit-bottom-3 + rotate: false + xy: 2347, 676 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-bottom-4 + rotate: false + xy: 2347, 676 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-top-0 + rotate: false + xy: 2347, 642 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-top-1 + rotate: false + xy: 2313, 608 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-top-2 + rotate: false + xy: 2347, 608 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-top-3 + rotate: false + xy: 2313, 574 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 pulse-conduit-top-3 rotate: false - xy: 2347, 676 + xy: 2313, 574 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-4 rotate: false - xy: 2313, 642 + xy: 2347, 574 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-junction rotate: false - xy: 3313, 2289 + xy: 3255, 2221 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-junction-icon-logic + rotate: false + xy: 3255, 2221 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-overflow-gate rotate: false - xy: 3153, 2199 + xy: 3323, 2255 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-overflow-gate-top rotate: false - xy: 3187, 2249 + xy: 3323, 2221 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-bottom rotate: false - xy: 3187, 2215 + xy: 3187, 2181 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-liquid rotate: false - xy: 3221, 2249 + xy: 3221, 2181 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-top rotate: false - xy: 3221, 2215 + xy: 3255, 2187 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1140,126 +1287,140 @@ liquid-tank-top index: -1 mechanical-pump rotate: false - xy: 3187, 2181 + xy: 2449, 642 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -mechanical-pump-liquid - rotate: false - xy: 3221, 2181 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -rotary-pump-liquid - rotate: false - xy: 3221, 2181 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -thermal-pump-liquid - rotate: false - xy: 3221, 2181 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conduit - rotate: false - xy: 2449, 676 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conduit-arrow +mechanical-pump-icon-logic rotate: false xy: 2449, 642 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -phase-conduit-bridge +mechanical-pump-liquid rotate: false xy: 2449, 608 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -phase-conduit-end +rotary-pump-liquid rotate: false - xy: 2449, 574 + xy: 2449, 608 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -plated-conduit-cap +thermal-pump-liquid + rotate: false + xy: 2449, 608 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-conduit + rotate: false + xy: 3415, 2303 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-conduit-icon-logic + rotate: false + xy: 3415, 2303 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-conduit-arrow + rotate: false + xy: 3449, 2337 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-conduit-bridge rotate: false xy: 3449, 2303 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -plated-conduit-top-0 +phase-conduit-end rotate: false xy: 3483, 2337 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +plated-conduit-cap + rotate: false + xy: 3459, 2201 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plated-conduit-top-0 + rotate: false + xy: 3493, 2269 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 plated-conduit-top-1 rotate: false - xy: 3483, 2303 + xy: 3493, 2235 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-2 rotate: false - xy: 3357, 2269 + xy: 3493, 2201 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-3 rotate: false - xy: 3357, 2235 + xy: 3357, 2167 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-4 rotate: false - xy: 3391, 2269 + xy: 3391, 2167 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-0 rotate: false - xy: 3391, 2201 + xy: 3517, 2321 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-1 rotate: false - xy: 3425, 2235 + xy: 3551, 2355 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-2 rotate: false - xy: 3459, 2269 + xy: 3551, 2321 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-4 rotate: false - xy: 3425, 2201 + xy: 3585, 2353 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1271,6 +1432,13 @@ rotary-pump orig: 64, 64 offset: 0, 0 index: -1 +rotary-pump-icon-logic + rotate: false + xy: 2079, 1882 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 thermal-pump rotate: false xy: 3127, 2671 @@ -1278,6 +1446,13 @@ thermal-pump orig: 96, 96 offset: 0, 0 index: -1 +thermal-pump-icon-logic + rotate: false + xy: 3127, 2671 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 hyper-processor rotate: false xy: 1853, 2643 @@ -1285,6 +1460,13 @@ hyper-processor orig: 96, 96 offset: 0, 0 index: -1 +hyper-processor-icon-logic + rotate: false + xy: 1853, 2643 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 large-logic-display rotate: false xy: 1307, 1646 @@ -1292,6 +1474,13 @@ large-logic-display orig: 192, 192 offset: 0, 0 index: -1 +large-logic-display-icon-logic + rotate: false + xy: 1307, 1646 + size: 192, 192 + orig: 192, 192 + offset: 0, 0 + index: -1 logic-display rotate: false xy: 2245, 2545 @@ -1299,6 +1488,13 @@ logic-display orig: 96, 96 offset: 0, 0 index: -1 +logic-display-icon-logic + rotate: false + xy: 2245, 2545 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 logic-processor rotate: false xy: 2013, 1552 @@ -1306,6 +1502,13 @@ logic-processor orig: 64, 64 offset: 0, 0 index: -1 +logic-processor-icon-logic + rotate: false + xy: 2013, 1552 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 memory-bank rotate: false xy: 2029, 826 @@ -1313,79 +1516,135 @@ memory-bank orig: 64, 64 offset: 0, 0 index: -1 +memory-bank-icon-logic + rotate: false + xy: 2029, 826 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 memory-cell rotate: false - xy: 3289, 2187 + xy: 2449, 506 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +memory-cell-icon-logic + rotate: false + xy: 2449, 506 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 message rotate: false - xy: 2439, 778 + xy: 2453, 404 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +message-icon-logic + rotate: false + xy: 2453, 404 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 micro-processor rotate: false - xy: 2439, 744 + xy: 3347, 2337 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +micro-processor-icon-logic + rotate: false + xy: 3347, 2337 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 switch rotate: false - xy: 2409, 2109 + xy: 2395, 1905 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +switch-icon-logic + rotate: false + xy: 2395, 1905 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 switch-on rotate: false - xy: 2443, 2109 + xy: 2497, 2007 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 battery rotate: false - xy: 3593, 2622 + xy: 2291, 12 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +battery-icon-logic + rotate: false + xy: 2291, 12 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 battery-large rotate: false - xy: 1935, 1224 + xy: 3329, 3001 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +battery-large-icon-logic + rotate: false + xy: 3329, 3001 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 battery-large-top rotate: false - xy: 3231, 2989 + xy: 3281, 2891 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 battery-top rotate: false - xy: 2291, 80 + xy: 2357, 1186 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 combustion-generator rotate: false - xy: 2279, 650 + xy: 2279, 480 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +combustion-generator-icon-logic + rotate: false + xy: 2279, 480 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 combustion-generator-top rotate: false - xy: 2279, 616 + xy: 2279, 446 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1397,6 +1656,13 @@ differential-generator orig: 96, 96 offset: 0, 0 index: -1 +differential-generator-icon-logic + rotate: false + xy: 2330, 2741 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 differential-generator-liquid rotate: false xy: 2526, 2839 @@ -1413,28 +1679,42 @@ differential-generator-top index: -1 diode rotate: false - xy: 3085, 2193 + xy: 3245, 2357 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +diode-icon-logic + rotate: false + xy: 3245, 2357 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 diode-arrow rotate: false - xy: 3119, 2267 + xy: 3279, 2357 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator rotate: false - xy: 3279, 2391 + xy: 2413, 948 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +illuminator-icon-logic + rotate: false + xy: 2413, 948 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator-top rotate: false - xy: 3313, 2391 + xy: 2413, 914 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1490,7 +1770,14 @@ impact-reactor-plasma-3 index: -1 power-node rotate: false - xy: 3357, 2201 + xy: 3459, 2167 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +power-node-icon-logic + rotate: false + xy: 3459, 2167 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1502,16 +1789,37 @@ power-node-large orig: 64, 64 offset: 0, 0 index: -1 +power-node-large-icon-logic + rotate: false + xy: 2779, 2249 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 power-source rotate: false - xy: 3391, 2235 + xy: 3493, 2167 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +power-source-icon-logic + rotate: false + xy: 3493, 2167 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-void rotate: false - xy: 3425, 2269 + xy: 3517, 2355 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +power-void-icon-logic + rotate: false + xy: 3517, 2355 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1523,16 +1831,30 @@ rtg-generator orig: 64, 64 offset: 0, 0 index: -1 +rtg-generator-icon-logic + rotate: false + xy: 2079, 1816 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 rtg-generator-top rotate: false - xy: 3357, 2167 + xy: 3561, 2285 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel rotate: false - xy: 3527, 2287 + xy: 2477, 2109 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +solar-panel-icon-logic + rotate: false + xy: 2477, 2109 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1544,6 +1866,13 @@ solar-panel-large orig: 96, 96 offset: 0, 0 index: -1 +solar-panel-large-icon-logic + rotate: false + xy: 3029, 2671 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 steam-generator rotate: false xy: 2213, 562 @@ -1586,6 +1915,13 @@ surge-tower orig: 64, 64 offset: 0, 0 index: -1 +surge-tower-icon-logic + rotate: false + xy: 2027, 2156 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 thermal-generator rotate: false xy: 2159, 2156 @@ -1593,6 +1929,13 @@ thermal-generator orig: 64, 64 offset: 0, 0 index: -1 +thermal-generator-icon-logic + rotate: false + xy: 2159, 2156 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 thorium-reactor rotate: false xy: 3029, 2573 @@ -1600,6 +1943,13 @@ thorium-reactor orig: 96, 96 offset: 0, 0 index: -1 +thorium-reactor-icon-logic + rotate: false + xy: 3029, 2573 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 thorium-reactor-lights rotate: false xy: 3029, 2475 @@ -1616,14 +1966,21 @@ thorium-reactor-top index: -1 alloy-smelter rotate: false - xy: 1919, 1420 + xy: 1935, 1224 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +alloy-smelter-icon-logic + rotate: false + xy: 1935, 1224 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 alloy-smelter-top rotate: false - xy: 1935, 1322 + xy: 3231, 2989 size: 96, 96 orig: 96, 96 offset: 0, 0 @@ -1635,6 +1992,13 @@ blast-mixer orig: 64, 64 offset: 0, 0 index: -1 +blast-mixer-icon-logic + rotate: false + xy: 1825, 2043 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 block-forge rotate: false xy: 3281, 2695 @@ -1642,6 +2006,13 @@ block-forge orig: 96, 96 offset: 0, 0 index: -1 +block-forge-icon-logic + rotate: false + xy: 3281, 2695 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 coal-centrifuge rotate: false xy: 3874, 2651 @@ -1649,6 +2020,13 @@ coal-centrifuge orig: 64, 64 offset: 0, 0 index: -1 +coal-centrifuge-icon-logic + rotate: false + xy: 3874, 2651 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 cryofluid-mixer-bottom rotate: false xy: 3029, 2409 @@ -1698,6 +2076,13 @@ disassembler orig: 96, 96 offset: 0, 0 index: -1 +disassembler-icon-logic + rotate: false + xy: 2526, 2741 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 disassembler-liquid rotate: false xy: 2624, 2839 @@ -1719,23 +2104,51 @@ graphite-press orig: 64, 64 offset: 0, 0 index: -1 +graphite-press-icon-logic + rotate: false + xy: 2013, 1948 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 incinerator rotate: false - xy: 3211, 2351 + xy: 2413, 880 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +incinerator-icon-logic + rotate: false + xy: 2413, 880 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-source rotate: false - xy: 2415, 472 + xy: 3211, 2283 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-source-icon-logic + rotate: false + xy: 3211, 2283 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-void rotate: false - xy: 3313, 2323 + xy: 3221, 2249 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-void-icon-logic + rotate: false + xy: 3221, 2249 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1747,6 +2160,13 @@ kiln orig: 64, 64 offset: 0, 0 index: -1 +kiln-icon-logic + rotate: false + xy: 2013, 1882 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 kiln-top rotate: false xy: 2013, 1816 @@ -1763,21 +2183,42 @@ silicon-smelter-top index: -1 liquid-source rotate: false - xy: 3289, 2255 + xy: 2439, 812 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-source-icon-logic + rotate: false + xy: 2439, 812 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-void rotate: false - xy: 3289, 2221 + xy: 2439, 778 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-void-icon-logic + rotate: false + xy: 2439, 778 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 melter rotate: false - xy: 3255, 2187 + xy: 2449, 540 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +melter-icon-logic + rotate: false + xy: 2449, 540 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1789,6 +2230,13 @@ multi-press orig: 96, 96 offset: 0, 0 index: -1 +multi-press-icon-logic + rotate: false + xy: 2539, 2643 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 phase-weaver rotate: false xy: 2095, 826 @@ -1817,6 +2265,13 @@ plastanium-compressor orig: 64, 64 offset: 0, 0 index: -1 +plastanium-compressor-icon-logic + rotate: false + xy: 2147, 628 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 plastanium-compressor-top rotate: false xy: 2147, 562 @@ -1826,14 +2281,14 @@ plastanium-compressor-top index: -1 pulverizer rotate: false - xy: 3459, 2235 + xy: 3585, 2319 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulverizer-rotator rotate: false - xy: 3459, 2201 + xy: 3527, 2287 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1845,6 +2300,13 @@ pyratite-mixer orig: 64, 64 offset: 0, 0 index: -1 +pyratite-mixer-icon-logic + rotate: false + xy: 2911, 2199 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 separator rotate: false xy: 2099, 1222 @@ -1852,6 +2314,13 @@ separator orig: 64, 64 offset: 0, 0 index: -1 +separator-icon-logic + rotate: false + xy: 2099, 1222 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 separator-liquid rotate: false xy: 2157, 1156 @@ -1873,6 +2342,13 @@ silicon-crucible orig: 96, 96 offset: 0, 0 index: -1 +silicon-crucible-icon-logic + rotate: false + xy: 2931, 2561 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 silicon-crucible-top rotate: false xy: 2931, 2463 @@ -1887,6 +2363,13 @@ silicon-smelter orig: 64, 64 offset: 0, 0 index: -1 +silicon-smelter-icon-logic + rotate: false + xy: 2161, 1024 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 spore-press rotate: false xy: 2161, 958 @@ -1959,28 +2442,28 @@ dacite-boulder2 index: -1 sand-boulder1 rotate: false - xy: 3391, 2167 + xy: 3561, 2251 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-boulder2 rotate: false - xy: 3425, 2167 + xy: 3561, 2217 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-boulder1 rotate: false - xy: 3551, 2321 + xy: 3595, 2149 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-boulder2 rotate: false - xy: 3585, 2353 + xy: 2375, 2109 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2106,14 +2589,21 @@ core-shard-team index: -1 unloader rotate: false - xy: 2429, 1905 + xy: 2497, 1803 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +unloader-icon-logic + rotate: false + xy: 2497, 1803 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unloader-center rotate: false - xy: 2395, 1837 + xy: 2463, 1769 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2134,14 +2624,14 @@ vault-team index: -1 arc-heat rotate: false - xy: 2820, 2855 + xy: 1981, 1518 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-1 rotate: false - xy: 2291, 46 + xy: 2353, 1118 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2155,14 +2645,14 @@ block-2 index: -1 block-3 rotate: false - xy: 3329, 3001 + xy: 3281, 2793 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-4 rotate: false - xy: 1899, 888 + xy: 1899, 758 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -2211,7 +2701,7 @@ salvo-heat index: -1 scorch-heat rotate: false - xy: 3493, 2167 + xy: 3561, 2149 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2253,14 +2743,14 @@ additive-reconstructor index: -1 additive-reconstructor-top rotate: false - xy: 1559, 2571 + xy: 1559, 2473 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 air-factory rotate: false - xy: 1559, 2473 + xy: 1919, 1420 size: 96, 96 orig: 96, 96 offset: 0, 0 @@ -2393,7 +2883,7 @@ rally-point index: -1 repair-point-base rotate: false - xy: 3493, 2235 + xy: 3527, 2185 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2405,6 +2895,13 @@ resupply-point orig: 64, 64 offset: 0, 0 index: -1 +resupply-point-icon-logic + rotate: false + xy: 2079, 1948 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 tetrative-reconstructor rotate: false xy: 323, 2041 @@ -2421,7 +2918,14 @@ tetrative-reconstructor-top index: -1 copper-wall rotate: false - xy: 2381, 574 + xy: 3587, 2421 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +copper-wall-icon-logic + rotate: false + xy: 3587, 2421 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2433,9 +2937,23 @@ copper-wall-large orig: 64, 64 offset: 0, 0 index: -1 +copper-wall-large-icon-logic + rotate: false + xy: 2317, 2301 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 door rotate: false - xy: 3119, 2233 + xy: 3313, 2357 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +door-icon-logic + rotate: false + xy: 3313, 2357 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2447,6 +2965,13 @@ door-large orig: 64, 64 offset: 0, 0 index: -1 +door-large-icon-logic + rotate: false + xy: 2911, 2331 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 door-large-open rotate: false xy: 2845, 2265 @@ -2456,14 +2981,21 @@ door-large-open index: -1 door-open rotate: false - xy: 3119, 2199 + xy: 2315, 122 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall rotate: false - xy: 2453, 404 + xy: 3357, 2201 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-wall-icon-logic + rotate: false + xy: 3357, 2201 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2475,9 +3007,23 @@ phase-wall-large orig: 64, 64 offset: 0, 0 index: -1 +phase-wall-large-icon-logic + rotate: false + xy: 2095, 892 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 plastanium-wall rotate: false - xy: 3449, 2337 + xy: 3459, 2235 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plastanium-wall-icon-logic + rotate: false + xy: 3459, 2235 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2489,6 +3035,13 @@ plastanium-wall-large orig: 64, 64 offset: 0, 0 index: -1 +plastanium-wall-large-icon-logic + rotate: false + xy: 2147, 496 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 scrap-wall-gigantic rotate: false xy: 2613, 3035 @@ -2496,6 +3049,13 @@ scrap-wall-gigantic orig: 128, 128 offset: 0, 0 index: -1 +scrap-wall-gigantic-icon-logic + rotate: false + xy: 2613, 3035 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 scrap-wall-huge2 rotate: false xy: 2833, 2463 @@ -2540,35 +3100,42 @@ scrap-wall-large4 index: -1 scrap-wall2 rotate: false - xy: 3517, 2355 + xy: 3595, 2285 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall3 rotate: false - xy: 3517, 2321 + xy: 3595, 2251 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall4 rotate: false - xy: 3551, 2355 + xy: 3595, 2217 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall5 rotate: false - xy: 3551, 2355 + xy: 3595, 2217 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall rotate: false - xy: 2375, 2109 + xy: 2429, 1973 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +surge-wall-icon-logic + rotate: false + xy: 2429, 1973 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2580,9 +3147,23 @@ surge-wall-large orig: 64, 64 offset: 0, 0 index: -1 +surge-wall-large-icon-logic + rotate: false + xy: 2093, 2156 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 thorium-wall rotate: false - xy: 2477, 2109 + xy: 2463, 1973 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +thorium-wall-icon-logic + rotate: false + xy: 2463, 1973 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2594,6 +3175,13 @@ thorium-wall-large orig: 64, 64 offset: 0, 0 index: -1 +thorium-wall-large-icon-logic + rotate: false + xy: 2155, 2090 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 thruster rotate: false xy: 2743, 2941 @@ -2603,7 +3191,14 @@ thruster index: -1 titanium-wall rotate: false - xy: 2395, 1871 + xy: 2463, 1803 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-wall-icon-logic + rotate: false + xy: 2463, 1803 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2615,6 +3210,13 @@ titanium-wall-large orig: 64, 64 offset: 0, 0 index: -1 +titanium-wall-large-icon-logic + rotate: false + xy: 2169, 2222 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 bullet rotate: false xy: 4043, 3285 @@ -2771,7 +3373,7 @@ transfer index: -1 transfer-arrow rotate: false - xy: 2497, 1973 + xy: 2429, 1769 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2783,6 +3385,41 @@ white orig: 3, 3 offset: 0, 0 index: -1 +additive-reconstructor-icon-logic + rotate: false + xy: 1559, 2571 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +block-additive-reconstructor-full + rotate: false + xy: 1559, 2571 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +air-factory-icon-logic + rotate: false + xy: 1935, 1322 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +block-air-factory-full + rotate: false + xy: 1935, 1322 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +alpha-icon-logic + rotate: false + xy: 1947, 1518 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 alpha-outline rotate: false xy: 3225, 2719 @@ -2811,6 +3448,13 @@ alpha-wreck2 orig: 48, 48 offset: 0, 0 index: -1 +antumbra-icon-logic + rotate: false + xy: 3233, 3183 + size: 28, 32 + orig: 28, 32 + offset: 0, 0 + index: -1 antumbra-outline rotate: false xy: 935, 2357 @@ -2841,7 +3485,21 @@ antumbra-wreck2 index: -1 arc rotate: false - xy: 1947, 1518 + xy: 2820, 2855 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +arc-icon-logic + rotate: false + xy: 1053, 8 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-arc-full + rotate: false + xy: 1053, 8 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2853,6 +3511,13 @@ arkyid-foot orig: 70, 70 offset: 0, 0 index: -1 +arkyid-icon-logic + rotate: false + xy: 2319, 1160 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 arkyid-joint-base rotate: false xy: 3601, 2533 @@ -2923,9 +3588,16 @@ atrax-foot orig: 40, 40 offset: 0, 0 index: -1 +atrax-icon-logic + rotate: false + xy: 1883, 1 + size: 32, 23 + orig: 32, 23 + offset: 0, 0 + index: -1 atrax-joint rotate: false - xy: 1317, 3183 + xy: 1889, 1408 size: 26, 26 orig: 26, 26 offset: 0, 0 @@ -2979,6 +3651,13 @@ beam-weapon-outline orig: 80, 80 offset: 0, 0 index: -1 +beta-icon-logic + rotate: false + xy: 2495, 3775 + size: 32, 30 + orig: 32, 30 + offset: 0, 0 + index: -1 beta-outline rotate: false xy: 2683, 2979 @@ -3007,41 +3686,41 @@ beta-wreck2 orig: 56, 54 offset: 0, 0 index: -1 -block-additive-reconstructor-full +blast-compound-icon-logic rotate: false - xy: 3281, 2891 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -block-air-factory-full - rotate: false - xy: 3281, 2793 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -block-arc-full - rotate: false - xy: 2291, 12 + xy: 2353, 1152 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-basalt-full +item-blast-compound-medium rotate: false - xy: 2357, 1186 + xy: 2353, 1152 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +blast-drill-icon-logic + rotate: false + xy: 3263, 3099 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 block-blast-drill-full rotate: false - xy: 1899, 758 + xy: 3263, 3099 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 +block-basalt-full + rotate: false + xy: 2391, 1186 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 block-boulder-full rotate: false xy: 1001, 1131 @@ -3051,7 +3730,7 @@ block-boulder-full index: -1 block-char-full rotate: false - xy: 2353, 1118 + xy: 2387, 1118 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3063,9 +3742,23 @@ block-command-center-full orig: 64, 64 offset: 0, 0 index: -1 +command-center-icon-logic + rotate: false + xy: 1961, 2212 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 block-conduit-full rotate: false - xy: 2391, 1186 + xy: 2319, 1092 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-icon-logic + rotate: false + xy: 2319, 1092 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3077,16 +3770,30 @@ block-container-full orig: 64, 64 offset: 0, 0 index: -1 +container-icon-logic + rotate: false + xy: 1895, 2146 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 block-conveyor-full rotate: false - xy: 2387, 1152 + xy: 2311, 1058 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-0 rotate: false - xy: 2387, 1152 + xy: 2311, 1058 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conveyor-icon-logic + rotate: false + xy: 2311, 1058 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3098,6 +3805,13 @@ block-core-foundation-full orig: 128, 128 offset: 0, 0 index: -1 +core-foundation-icon-logic + rotate: false + xy: 1887, 628 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 block-core-nucleus-full rotate: false xy: 1423, 784 @@ -3105,6 +3819,13 @@ block-core-nucleus-full orig: 160, 160 offset: 0, 0 index: -1 +core-nucleus-icon-logic + rotate: false + xy: 1423, 784 + size: 160, 160 + orig: 160, 160 + offset: 0, 0 + index: -1 block-core-shard-full rotate: false xy: 3379, 2903 @@ -3112,9 +3833,16 @@ block-core-shard-full orig: 96, 96 offset: 0, 0 index: -1 +core-shard-icon-logic + rotate: false + xy: 3379, 2903 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-craters-full rotate: false - xy: 2387, 1118 + xy: 2311, 1024 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3126,6 +3854,13 @@ block-cryofluid-mixer-full orig: 64, 64 offset: 0, 0 index: -1 +cryofluid-mixer-icon-logic + rotate: false + xy: 1961, 2146 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 block-cultivator-full rotate: false xy: 1891, 2080 @@ -3133,6 +3868,13 @@ block-cultivator-full orig: 64, 64 offset: 0, 0 index: -1 +cultivator-icon-logic + rotate: false + xy: 1891, 2080 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 block-cyclone-full rotate: false xy: 3379, 2805 @@ -3140,6 +3882,13 @@ block-cyclone-full orig: 96, 96 offset: 0, 0 index: -1 +cyclone-icon-logic + rotate: false + xy: 3379, 2805 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-dacite-boulder-full rotate: false xy: 3035, 2195 @@ -3149,56 +3898,63 @@ block-dacite-boulder-full index: -1 block-dacite-full rotate: false - xy: 2319, 1092 + xy: 2311, 990 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dacite-wall-full rotate: false - xy: 2311, 1058 + xy: 2311, 956 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-metal-full rotate: false - xy: 2311, 1024 + xy: 2311, 922 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-full rotate: false - xy: 2311, 990 + xy: 2353, 1084 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dirt-full rotate: false - xy: 2311, 956 + xy: 2387, 1084 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dirt-wall-full rotate: false - xy: 2311, 922 + xy: 2345, 1050 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dune-wall-full rotate: false - xy: 2353, 1084 + xy: 2345, 1016 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-duo-full rotate: false - xy: 2387, 1084 + xy: 2379, 1050 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +duo-icon-logic + rotate: false + xy: 2379, 1050 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3210,6 +3966,13 @@ block-exponential-reconstructor-full orig: 224, 224 offset: 0, 0 index: -1 +exponential-reconstructor-icon-logic + rotate: false + xy: 2837, 3581 + size: 224, 224 + orig: 224, 224 + offset: 0, 0 + index: -1 block-foreshadow-full rotate: false xy: 1887, 498 @@ -3217,6 +3980,13 @@ block-foreshadow-full orig: 128, 128 offset: 0, 0 index: -1 +foreshadow-icon-logic + rotate: false + xy: 1887, 498 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 block-fuse-full rotate: false xy: 3379, 2707 @@ -3224,9 +3994,16 @@ block-fuse-full orig: 96, 96 offset: 0, 0 index: -1 +fuse-icon-logic + rotate: false + xy: 3379, 2707 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-grass-full rotate: false - xy: 2345, 1050 + xy: 2345, 982 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3238,41 +4015,55 @@ block-ground-factory-full orig: 96, 96 offset: 0, 0 index: -1 +ground-factory-icon-logic + rotate: false + xy: 3379, 2609 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-hail-full - rotate: false - xy: 2345, 1016 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-hotrock-full - rotate: false - xy: 2379, 1050 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ice-full - rotate: false - xy: 2345, 982 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ice-snow-full rotate: false xy: 2379, 1016 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ice-wall-full +hail-icon-logic + rotate: false + xy: 2379, 1016 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-hotrock-full rotate: false xy: 2345, 948 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +block-ice-full + rotate: false + xy: 2379, 982 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ice-snow-full + rotate: false + xy: 2379, 948 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ice-wall-full + rotate: false + xy: 2345, 914 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 block-impact-reactor-full rotate: false xy: 1887, 368 @@ -3280,6 +4071,13 @@ block-impact-reactor-full orig: 128, 128 offset: 0, 0 index: -1 +impact-reactor-icon-logic + rotate: false + xy: 1887, 368 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 block-lancer-full rotate: false xy: 1957, 2080 @@ -3287,6 +4085,13 @@ block-lancer-full orig: 64, 64 offset: 0, 0 index: -1 +lancer-icon-logic + rotate: false + xy: 1957, 2080 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 block-laser-drill-full rotate: false xy: 1703, 2937 @@ -3294,9 +4099,23 @@ block-laser-drill-full orig: 96, 96 offset: 0, 0 index: -1 +laser-drill-icon-logic + rotate: false + xy: 1703, 2937 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-liquid-router-full rotate: false - xy: 2379, 982 + xy: 2379, 914 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-router-icon-logic + rotate: false + xy: 2379, 914 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3308,9 +4127,16 @@ block-liquid-tank-full orig: 96, 96 offset: 0, 0 index: -1 +liquid-tank-icon-logic + rotate: false + xy: 1801, 2937 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-magmarock-full rotate: false - xy: 2379, 948 + xy: 2311, 888 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3322,6 +4148,13 @@ block-mass-driver-full orig: 96, 96 offset: 0, 0 index: -1 +mass-driver-icon-logic + rotate: false + xy: 1997, 2937 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-mechanical-drill-full rotate: false xy: 1947, 2014 @@ -3329,6 +4162,13 @@ block-mechanical-drill-full orig: 64, 64 offset: 0, 0 index: -1 +mechanical-drill-icon-logic + rotate: false + xy: 1947, 2014 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 block-meltdown-full rotate: false xy: 1883, 238 @@ -3336,23 +4176,30 @@ block-meltdown-full orig: 128, 128 offset: 0, 0 index: -1 +meltdown-icon-logic + rotate: false + xy: 1883, 238 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 block-metal-floor-damaged-full rotate: false - xy: 2345, 914 + xy: 2277, 872 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-moss-full rotate: false - xy: 2311, 888 + xy: 2379, 880 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-mud-full rotate: false - xy: 2277, 872 + xy: 2269, 838 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3364,6 +4211,13 @@ block-multiplicative-reconstructor-full orig: 160, 160 offset: 0, 0 index: -1 +multiplicative-reconstructor-icon-logic + rotate: false + xy: 1401, 622 + size: 160, 160 + orig: 160, 160 + offset: 0, 0 + index: -1 block-naval-factory-full rotate: false xy: 2095, 2937 @@ -3371,6 +4225,13 @@ block-naval-factory-full orig: 96, 96 offset: 0, 0 index: -1 +naval-factory-icon-logic + rotate: false + xy: 2095, 2937 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-oil-extractor-full rotate: false xy: 2193, 2937 @@ -3378,44 +4239,51 @@ block-oil-extractor-full orig: 96, 96 offset: 0, 0 index: -1 +oil-extractor-icon-logic + rotate: false + xy: 2193, 2937 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-ore-coal-full rotate: false - xy: 2345, 880 + xy: 2269, 804 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-copper-full rotate: false - xy: 2379, 880 + xy: 2269, 770 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-lead-full rotate: false - xy: 2269, 838 + xy: 2311, 854 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-scrap-full rotate: false - xy: 2269, 804 + xy: 2345, 846 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-thorium-full rotate: false - xy: 2269, 770 + xy: 2379, 846 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-titanium-full rotate: false - xy: 2311, 854 + xy: 2303, 820 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3427,6 +4295,13 @@ block-parallax-full orig: 64, 64 offset: 0, 0 index: -1 +parallax-icon-logic + rotate: false + xy: 1947, 1948 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 block-payload-conveyor-full rotate: false xy: 2291, 2937 @@ -3441,6 +4316,13 @@ payload-conveyor-icon orig: 96, 96 offset: 0, 0 index: -1 +payload-conveyor-icon-logic + rotate: false + xy: 2291, 2937 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-payload-router-full rotate: false xy: 2389, 2937 @@ -3455,9 +4337,16 @@ payload-router-icon orig: 96, 96 offset: 0, 0 index: -1 +payload-router-icon-logic + rotate: false + xy: 2389, 2937 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-pebbles-full rotate: false - xy: 2345, 846 + xy: 2303, 786 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3469,9 +4358,23 @@ block-phase-weaver-full orig: 64, 64 offset: 0, 0 index: -1 +phase-weaver-icon-logic + rotate: false + xy: 1947, 1882 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 block-plated-conduit-full rotate: false - xy: 2379, 846 + xy: 2337, 812 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plated-conduit-icon-logic + rotate: false + xy: 2337, 812 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3483,23 +4386,51 @@ block-pneumatic-drill-full orig: 64, 64 offset: 0, 0 index: -1 +pneumatic-drill-icon-logic + rotate: false + xy: 1947, 1816 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 block-pulse-conduit-full rotate: false - xy: 2303, 820 + xy: 2371, 812 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pulse-conduit-icon-logic + rotate: false + xy: 2371, 812 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pulverizer-full rotate: false - xy: 2303, 786 + xy: 2337, 778 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pulverizer-icon-logic + rotate: false + xy: 2337, 778 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-repair-point-full rotate: false - xy: 2337, 812 + xy: 2371, 778 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +repair-point-icon-logic + rotate: false + xy: 2371, 778 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3511,9 +4442,16 @@ block-ripple-full orig: 96, 96 offset: 0, 0 index: -1 +ripple-icon-logic + rotate: false + xy: 2487, 2937 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-salt-wall-full rotate: false - xy: 2371, 812 + xy: 2303, 752 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3525,23 +4463,30 @@ block-salvo-full orig: 64, 64 offset: 0, 0 index: -1 +salvo-icon-logic + rotate: false + xy: 1947, 1750 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 block-sand-boulder-full rotate: false - xy: 2337, 778 + xy: 2337, 744 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sand-full rotate: false - xy: 2371, 778 + xy: 2371, 744 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sand-wall-full rotate: false - xy: 2303, 752 + xy: 1524, 2635 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3553,23 +4498,44 @@ block-scatter-full orig: 64, 64 offset: 0, 0 index: -1 +scatter-icon-logic + rotate: false + xy: 1947, 1684 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 block-scorch-full rotate: false - xy: 2337, 744 + xy: 1638, 2965 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +scorch-icon-logic + rotate: false + xy: 1638, 2965 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-full rotate: false - xy: 2371, 744 + xy: 2575, 2159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall1 rotate: false - xy: 2371, 744 + xy: 2575, 2159 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +scrap-wall-icon-logic + rotate: false + xy: 2575, 2159 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3588,6 +4554,13 @@ scrap-wall-huge1 orig: 96, 96 offset: 0, 0 index: -1 +scrap-wall-huge-icon-logic + rotate: false + xy: 2585, 2937 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-scrap-wall-large-full rotate: false xy: 1947, 1618 @@ -3595,6 +4568,13 @@ block-scrap-wall-large-full orig: 64, 64 offset: 0, 0 index: -1 +scrap-wall-large-icon-logic + rotate: false + xy: 1947, 1618 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 block-segment-full rotate: false xy: 1947, 1552 @@ -3602,30 +4582,37 @@ block-segment-full orig: 64, 64 offset: 0, 0 index: -1 +segment-icon-logic + rotate: false + xy: 1947, 1552 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 block-shale-boulder-full rotate: false - xy: 1638, 2965 + xy: 2361, 2052 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shale-full rotate: false - xy: 2575, 2159 + xy: 2361, 2018 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shale-wall-full rotate: false - xy: 2575, 2125 + xy: 2361, 1984 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shrubs-full rotate: false - xy: 2361, 2052 + xy: 2361, 1950 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3639,14 +4626,14 @@ block-snow-boulder-full index: -1 block-snow-full rotate: false - xy: 2361, 2018 + xy: 2361, 1916 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-snow-wall-full rotate: false - xy: 2361, 1984 + xy: 2361, 1882 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3658,6 +4645,13 @@ block-spectre-full orig: 128, 128 offset: 0, 0 index: -1 +spectre-icon-logic + rotate: false + xy: 1883, 108 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 block-spore-cluster-full rotate: false xy: 1891, 2038 @@ -3667,7 +4661,7 @@ block-spore-cluster-full index: -1 block-spore-moss-full rotate: false - xy: 2361, 1950 + xy: 2361, 1848 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3679,9 +4673,16 @@ block-spore-press-full orig: 64, 64 offset: 0, 0 index: -1 +spore-press-icon-logic + rotate: false + xy: 3829, 2792 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 block-spore-wall-full rotate: false - xy: 2361, 1916 + xy: 2361, 1814 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3693,16 +4694,23 @@ block-steam-generator-full orig: 64, 64 offset: 0, 0 index: -1 +steam-generator-icon-logic + rotate: false + xy: 3895, 2783 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 block-stone-full rotate: false - xy: 2361, 1882 + xy: 2361, 1780 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-stone-wall-full rotate: false - xy: 2361, 1848 + xy: 2361, 1746 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3714,9 +4722,16 @@ block-swarmer-full orig: 64, 64 offset: 0, 0 index: -1 +swarmer-icon-logic + rotate: false + xy: 3824, 2726 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 block-tendrils-full rotate: false - xy: 2361, 1814 + xy: 2361, 1712 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3728,16 +4743,30 @@ block-tetrative-reconstructor-full orig: 288, 288 offset: 0, 0 index: -1 +tetrative-reconstructor-icon-logic + rotate: false + xy: 1, 1233 + size: 288, 288 + orig: 288, 288 + offset: 0, 0 + index: -1 block-titanium-conveyor-full rotate: false - xy: 2361, 1780 + xy: 2361, 1678 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-0 rotate: false - xy: 2361, 1780 + xy: 2361, 1678 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-conveyor-icon-logic + rotate: false + xy: 2361, 1678 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3749,6 +4778,13 @@ block-tsunami-full orig: 96, 96 offset: 0, 0 index: -1 +tsunami-icon-logic + rotate: false + xy: 1644, 2839 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-vault-full rotate: false xy: 1742, 2839 @@ -3756,6 +4792,13 @@ block-vault-full orig: 96, 96 offset: 0, 0 index: -1 +vault-icon-logic + rotate: false + xy: 1742, 2839 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-water-extractor-full rotate: false xy: 3890, 2717 @@ -3763,6 +4806,13 @@ block-water-extractor-full orig: 64, 64 offset: 0, 0 index: -1 +water-extractor-icon-logic + rotate: false + xy: 3890, 2717 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 block-wave-full rotate: false xy: 3808, 2660 @@ -3770,6 +4820,20 @@ block-wave-full orig: 64, 64 offset: 0, 0 index: -1 +wave-icon-logic + rotate: false + xy: 3808, 2660 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +bryde-icon-logic + rotate: false + xy: 2279, 582 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 bryde-outline rotate: false xy: 1663, 1124 @@ -3798,6 +4862,20 @@ bryde-wreck2 orig: 140, 140 offset: 0, 0 index: -1 +coal-icon-logic + rotate: false + xy: 2279, 514 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-coal-medium + rotate: false + xy: 2279, 514 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 command-center-team-crux rotate: false xy: 3940, 2643 @@ -3826,6 +4904,20 @@ container-team-sharded orig: 64, 64 offset: 0, 0 index: -1 +copper-icon-logic + rotate: false + xy: 2385, 404 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-copper-medium + rotate: false + xy: 2385, 404 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 core-foundation-team-crux rotate: false xy: 2017, 368 @@ -3875,6 +4967,13 @@ corvus-foot orig: 90, 90 offset: 0, 0 index: -1 +corvus-icon-logic + rotate: false + xy: 725, 2921 + size: 31, 20 + orig: 31, 20 + offset: 0, 0 + index: -1 corvus-joint rotate: false xy: 2147, 368 @@ -3940,56 +5039,56 @@ corvus-wreck2 index: -1 cracks-1-0 rotate: false - xy: 2381, 540 + xy: 3587, 2387 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-1 rotate: false - xy: 2381, 506 + xy: 3085, 2261 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-2 rotate: false - xy: 2381, 472 + xy: 3085, 2227 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-3 rotate: false - xy: 2381, 438 + xy: 3085, 2193 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-4 rotate: false - xy: 2385, 404 + xy: 3119, 2267 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-5 rotate: false - xy: 3587, 2421 + xy: 3119, 2233 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-6 rotate: false - xy: 3587, 2387 + xy: 3119, 2199 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-7 rotate: false - xy: 3085, 2261 + xy: 3211, 2385 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4442,6 +5541,13 @@ cracks-9-7 orig: 288, 288 offset: 0, 0 index: -1 +crawler-icon-logic + rotate: false + xy: 3245, 2391 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 crawler-leg rotate: false xy: 2165, 1346 @@ -4477,6 +5583,20 @@ crawler-wreck2 orig: 48, 48 offset: 0, 0 index: -1 +cryofluid-icon-logic + rotate: false + xy: 3313, 2391 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-cryofluid-medium + rotate: false + xy: 3313, 2391 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 cyclone rotate: false xy: 2428, 2839 @@ -4484,6 +5604,13 @@ cyclone orig: 96, 96 offset: 0, 0 index: -1 +dagger-icon-logic + rotate: false + xy: 3211, 2351 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 dagger-leg rotate: false xy: 2211, 1886 @@ -4521,7 +5648,14 @@ dagger-wreck2 index: -1 duo rotate: false - xy: 3211, 2385 + xy: 2325, 88 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +eclipse-icon-logic + rotate: false + xy: 2325, 54 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4568,6 +5702,13 @@ flamethrower-outline orig: 48, 56 offset: 0, 0 index: -1 +flare-icon-logic + rotate: false + xy: 2325, 20 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 flare-outline rotate: false xy: 2211, 1528 @@ -4603,6 +5744,13 @@ foreshadow orig: 128, 128 offset: 0, 0 index: -1 +fortress-icon-logic + rotate: false + xy: 2595, 3538 + size: 32, 25 + orig: 32, 25 + offset: 0, 0 + index: -1 fortress-leg rotate: false xy: 3829, 2940 @@ -4645,6 +5793,13 @@ fuse orig: 96, 96 offset: 0, 0 index: -1 +gamma-icon-logic + rotate: false + xy: 2590, 2217 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 gamma-outline rotate: false xy: 1817, 770 @@ -4673,9 +5828,23 @@ gamma-wreck2 orig: 68, 68 offset: 0, 0 index: -1 +graphite-icon-logic + rotate: false + xy: 2413, 1050 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-graphite-medium + rotate: false + xy: 2413, 1050 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 hail rotate: false - xy: 3245, 2391 + xy: 2413, 1016 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4701,6 +5870,13 @@ heal-weapon-outline orig: 48, 48 offset: 0, 0 index: -1 +horizon-icon-logic + rotate: false + xy: 2413, 982 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 horizon-outline rotate: false xy: 323, 2341 @@ -4736,13 +5912,6 @@ item-blast-compound-large orig: 40, 40 offset: 0, 0 index: -1 -item-blast-compound-medium - rotate: false - xy: 3313, 2357 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-blast-compound-small rotate: false xy: 693, 2331 @@ -4771,13 +5940,6 @@ item-coal-large orig: 40, 40 offset: 0, 0 index: -1 -item-coal-medium - rotate: false - xy: 2325, 88 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-coal-small rotate: false xy: 1601, 3441 @@ -4806,13 +5968,6 @@ item-copper-large orig: 40, 40 offset: 0, 0 index: -1 -item-copper-medium - rotate: false - xy: 2325, 20 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-copper-small rotate: false xy: 691, 1 @@ -4841,13 +5996,6 @@ item-graphite-large orig: 40, 40 offset: 0, 0 index: -1 -item-graphite-medium - rotate: false - xy: 2413, 1050 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-graphite-small rotate: false xy: 3347, 2399 @@ -4878,7 +6026,14 @@ item-lead-large index: -1 item-lead-medium rotate: false - xy: 2413, 982 + xy: 2415, 642 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +lead-icon-logic + rotate: false + xy: 2415, 642 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4913,7 +6068,14 @@ item-metaglass-large index: -1 item-metaglass-medium rotate: false - xy: 2413, 914 + xy: 2415, 574 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +metaglass-icon-logic + rotate: false + xy: 2415, 574 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4948,7 +6110,14 @@ item-phase-fabric-large index: -1 item-phase-fabric-medium rotate: false - xy: 2413, 846 + xy: 2415, 506 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-fabric-icon-logic + rotate: false + xy: 2415, 506 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4983,7 +6152,14 @@ item-plastanium-large index: -1 item-plastanium-medium rotate: false - xy: 2405, 778 + xy: 2415, 438 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plastanium-icon-logic + rotate: false + xy: 2415, 438 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -5018,7 +6194,14 @@ item-pyratite-large index: -1 item-pyratite-medium rotate: false - xy: 2415, 710 + xy: 3143, 2317 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pyratite-icon-logic + rotate: false + xy: 3143, 2317 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -5053,7 +6236,14 @@ item-sand-large index: -1 item-sand-medium rotate: false - xy: 2415, 642 + xy: 3177, 2301 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +sand-icon-logic + rotate: false + xy: 3177, 2301 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -5088,7 +6278,14 @@ item-scrap-large index: -1 item-scrap-medium rotate: false - xy: 2415, 574 + xy: 3245, 2323 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +scrap-icon-logic + rotate: false + xy: 3245, 2323 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -5123,7 +6320,14 @@ item-silicon-large index: -1 item-silicon-medium rotate: false - xy: 2415, 506 + xy: 3313, 2323 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +silicon-icon-logic + rotate: false + xy: 3313, 2323 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -5158,7 +6362,14 @@ item-spore-pod-large index: -1 item-spore-pod-medium rotate: false - xy: 2419, 404 + xy: 3279, 2289 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +spore-pod-icon-logic + rotate: false + xy: 3279, 2289 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -5193,7 +6404,14 @@ item-surge-alloy-large index: -1 item-surge-alloy-medium rotate: false - xy: 3177, 2335 + xy: 3153, 2267 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +surge-alloy-icon-logic + rotate: false + xy: 3153, 2267 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -5207,7 +6425,7 @@ item-surge-alloy-small index: -1 item-surge-alloy-tiny rotate: false - xy: 2595, 3547 + xy: 1229, 876 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -5228,7 +6446,14 @@ item-thorium-large index: -1 item-thorium-medium rotate: false - xy: 3211, 2317 + xy: 3153, 2199 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +thorium-icon-logic + rotate: false + xy: 3153, 2199 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -5242,7 +6467,7 @@ item-thorium-small index: -1 item-thorium-tiny rotate: false - xy: 983, 2839 + xy: 1401, 786 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -5263,7 +6488,14 @@ item-titanium-large index: -1 item-titanium-medium rotate: false - xy: 3279, 2323 + xy: 3187, 2215 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-icon-logic + rotate: false + xy: 3187, 2215 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -5277,7 +6509,7 @@ item-titanium-small index: -1 item-titanium-tiny rotate: false - xy: 1353, 3419 + xy: 3945, 3863 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -5338,13 +6570,6 @@ liquid-cryofluid-large orig: 40, 40 offset: 0, 0 index: -1 -liquid-cryofluid-medium - rotate: false - xy: 3279, 2289 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 liquid-cryofluid-small rotate: false xy: 849, 2331 @@ -5354,7 +6579,7 @@ liquid-cryofluid-small index: -1 liquid-cryofluid-tiny rotate: false - xy: 1229, 876 + xy: 1805, 1130 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -5375,7 +6600,14 @@ liquid-oil-large index: -1 liquid-oil-medium rotate: false - xy: 3153, 2233 + xy: 3289, 2221 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +oil-icon-logic + rotate: false + xy: 3289, 2221 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -5389,7 +6621,7 @@ liquid-oil-small index: -1 liquid-oil-tiny rotate: false - xy: 1401, 786 + xy: 3523, 3341 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -5410,21 +6642,28 @@ liquid-slag-large index: -1 liquid-slag-medium rotate: false - xy: 3255, 2221 + xy: 3323, 2187 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +slag-icon-logic + rotate: false + xy: 3323, 2187 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag-small rotate: false - xy: 725, 2917 + xy: 3016, 2773 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-slag-tiny rotate: false - xy: 1663, 1106 + xy: 3427, 3004 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -5445,21 +6684,28 @@ liquid-water-large index: -1 liquid-water-medium rotate: false - xy: 3323, 2221 + xy: 2449, 710 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +water-icon-logic + rotate: false + xy: 2449, 710 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water-small rotate: false - xy: 2495, 3781 + xy: 1251, 1095 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-water-tiny rotate: false - xy: 3945, 3863 + xy: 271, 55 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -5471,6 +6717,13 @@ liquid-water-xlarge orig: 48, 48 offset: 0, 0 index: -1 +mace-icon-logic + rotate: false + xy: 2449, 676 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 mace-leg rotate: false xy: 2033, 1354 @@ -5513,6 +6766,13 @@ mass-driver orig: 96, 96 offset: 0, 0 index: -1 +mega-icon-logic + rotate: false + xy: 2449, 574 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 mega-outline rotate: false xy: 3179, 2871 @@ -5548,6 +6808,13 @@ meltdown orig: 128, 128 offset: 0, 0 index: -1 +minke-icon-logic + rotate: false + xy: 1353, 3403 + size: 27, 32 + orig: 27, 32 + offset: 0, 0 + index: -1 minke-outline rotate: false xy: 3477, 2796 @@ -5583,6 +6850,13 @@ missiles-mount-outline orig: 48, 48 offset: 0, 0 index: -1 +mono-icon-logic + rotate: false + xy: 3347, 2303 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 mono-outline rotate: false xy: 2311, 1886 @@ -5625,6 +6899,13 @@ mount-weapon-outline orig: 48, 48 offset: 0, 0 index: -1 +nova-icon-logic + rotate: false + xy: 3381, 2337 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 nova-leg rotate: false xy: 2425, 2143 @@ -5660,6 +6941,13 @@ nova-wreck2 orig: 56, 56 offset: 0, 0 index: -1 +oct-icon-logic + rotate: false + xy: 3381, 2303 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 oct-outline rotate: false xy: 403, 3695 @@ -5695,6 +6983,13 @@ omura-cannon-outline orig: 192, 277 offset: 0, 0 index: -1 +omura-icon-logic + rotate: false + xy: 4073, 3587 + size: 22, 32 + orig: 22, 32 + offset: 0, 0 + index: -1 omura-outline rotate: false xy: 291, 545 @@ -5730,6 +7025,13 @@ parallax orig: 64, 64 offset: 0, 0 index: -1 +poly-icon-logic + rotate: false + xy: 3425, 2167 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 poly-outline rotate: false xy: 1623, 3107 @@ -5758,6 +7060,13 @@ poly-wreck2 orig: 56, 56 offset: 0, 0 index: -1 +pulsar-icon-logic + rotate: false + xy: 1663, 1095 + size: 32, 27 + orig: 32, 27 + offset: 0, 0 + index: -1 pulsar-leg rotate: false xy: 2845, 2199 @@ -5793,6 +7102,13 @@ pulsar-wreck2 orig: 68, 58 offset: 0, 0 index: -1 +quad-icon-logic + rotate: false + xy: 983, 2824 + size: 31, 31 + orig: 31, 31 + offset: 0, 0 + index: -1 quad-outline rotate: false xy: 831, 7 @@ -5821,6 +7137,13 @@ quad-wreck2 orig: 220, 220 offset: 0, 0 index: -1 +quasar-icon-logic + rotate: false + xy: 3527, 2253 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 quasar-leg rotate: false xy: 1307, 12 @@ -5856,6 +7179,13 @@ quasar-wreck2 orig: 80, 80 offset: 0, 0 index: -1 +reign-icon-logic + rotate: false + xy: 1199, 2763 + size: 31, 20 + orig: 31, 20 + offset: 0, 0 + index: -1 reign-leg rotate: false xy: 1663, 1534 @@ -5900,7 +7230,7 @@ reign-wreck2 index: -1 repair-point rotate: false - xy: 3493, 2269 + xy: 3527, 2219 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -5912,6 +7242,13 @@ ripple orig: 96, 96 offset: 0, 0 index: -1 +risso-icon-logic + rotate: false + xy: 3233, 3149 + size: 28, 32 + orig: 28, 32 + offset: 0, 0 + index: -1 risso-outline rotate: false xy: 2257, 2367 @@ -5954,6 +7291,13 @@ scatter orig: 64, 64 offset: 0, 0 index: -1 +scepter-icon-logic + rotate: false + xy: 1317, 3183 + size: 32, 26 + orig: 32, 26 + offset: 0, 0 + index: -1 scepter-leg rotate: false xy: 2483, 3035 @@ -6005,7 +7349,7 @@ scepter-wreck2 index: -1 scorch rotate: false - xy: 3459, 2167 + xy: 3561, 2183 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -6017,6 +7361,13 @@ segment orig: 64, 64 offset: 0, 0 index: -1 +sei-icon-logic + rotate: false + xy: 3595, 2183 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 sei-launcher-outline rotate: false xy: 3747, 2838 @@ -6052,6 +7403,13 @@ sei-wreck2 orig: 240, 240 offset: 0, 0 index: -1 +shock-mine-icon-logic + rotate: false + xy: 2443, 2109 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 small-basic-weapon-outline rotate: false xy: 2307, 1486 @@ -6080,9 +7438,16 @@ spiroct-foot orig: 46, 46 offset: 0, 0 index: -1 +spiroct-icon-logic + rotate: false + xy: 725, 2894 + size: 31, 25 + orig: 31, 25 + offset: 0, 0 + index: -1 spiroct-joint rotate: false - xy: 3527, 2219 + xy: 2395, 2075 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -6138,84 +7503,84 @@ spiroct-wreck2 index: -1 splash-0 rotate: false - xy: 3527, 2185 + xy: 2395, 2041 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-1 rotate: false - xy: 3527, 2151 + xy: 2429, 2075 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-10 rotate: false - xy: 3595, 2183 + xy: 2497, 2041 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-11 rotate: false - xy: 3595, 2149 + xy: 2463, 2007 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-2 rotate: false - xy: 3561, 2285 + xy: 2395, 2007 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-3 rotate: false - xy: 3561, 2251 + xy: 2463, 2075 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-4 rotate: false - xy: 3561, 2217 + xy: 2429, 2041 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-5 rotate: false - xy: 3561, 2183 + xy: 2395, 1973 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-6 rotate: false - xy: 3561, 2149 + xy: 2497, 2075 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-7 rotate: false - xy: 3595, 2285 + xy: 2463, 2041 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-8 rotate: false - xy: 3595, 2251 + xy: 2429, 2007 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-9 rotate: false - xy: 3595, 2217 + xy: 2395, 1939 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -6241,6 +7606,13 @@ toxopid-foot orig: 90, 90 offset: 0, 0 index: -1 +toxopid-icon-logic + rotate: false + xy: 3846, 2626 + size: 26, 32 + orig: 26, 32 + offset: 0, 0 + index: -1 toxopid-leg rotate: false xy: 3945, 4023 @@ -6535,6 +7907,13 @@ vault-team-sharded orig: 96, 96 offset: 0, 0 index: -1 +vela-icon-logic + rotate: false + xy: 1855, 1408 + size: 32, 26 + orig: 32, 26 + offset: 0, 0 + index: -1 vela-outline rotate: false xy: 1229, 520 @@ -6570,6 +7949,13 @@ wave orig: 64, 64 offset: 0, 0 index: -1 +zenith-icon-logic + rotate: false + xy: 2429, 1735 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 zenith-missiles-outline rotate: false xy: 2227, 892 @@ -6607,140 +7993,140 @@ zenith-wreck2 index: -1 item-blast-compound rotate: false - xy: 3279, 2357 + xy: 2405, 812 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal rotate: false - xy: 2315, 122 + xy: 2405, 778 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper rotate: false - xy: 2325, 54 + xy: 2405, 744 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite rotate: false - xy: 2590, 2217 + xy: 2415, 710 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead rotate: false - xy: 2413, 1016 + xy: 2415, 676 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass rotate: false - xy: 2413, 948 + xy: 2415, 608 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric rotate: false - xy: 2413, 880 + xy: 2415, 540 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium rotate: false - xy: 2405, 812 + xy: 2415, 472 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite rotate: false - xy: 2405, 744 + xy: 2419, 404 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand rotate: false - xy: 2415, 676 + xy: 3177, 2335 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap rotate: false - xy: 2415, 608 + xy: 3211, 2317 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon rotate: false - xy: 2415, 540 + xy: 3279, 2323 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod rotate: false - xy: 2415, 438 + xy: 3245, 2289 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy rotate: false - xy: 3143, 2317 + xy: 3313, 2289 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium rotate: false - xy: 3177, 2301 + xy: 3153, 2233 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium rotate: false - xy: 3245, 2323 + xy: 3187, 2249 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid rotate: false - xy: 3245, 2289 + xy: 3255, 2255 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil rotate: false - xy: 3153, 2267 + xy: 3289, 2255 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag rotate: false - xy: 3255, 2255 + xy: 3289, 2187 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water rotate: false - xy: 3323, 2255 + xy: 2439, 744 size: 32, 32 orig: 32, 32 offset: 0, 0 diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index 71293fe7a0..2377774251 100644 Binary files a/core/assets/sprites/sprites.png and b/core/assets/sprites/sprites.png differ diff --git a/core/assets/sprites/sprites2.png b/core/assets/sprites/sprites2.png index 4a26e4dbe9..31358f27b9 100644 Binary files a/core/assets/sprites/sprites2.png and b/core/assets/sprites/sprites2.png differ diff --git a/core/assets/sprites/sprites5.png b/core/assets/sprites/sprites5.png index 2fe5605d60..caf5ce1426 100644 Binary files a/core/assets/sprites/sprites5.png and b/core/assets/sprites/sprites5.png differ diff --git a/core/src/mindustry/Vars.java b/core/src/mindustry/Vars.java index 2cf07cbea6..dfd2984e75 100644 --- a/core/src/mindustry/Vars.java +++ b/core/src/mindustry/Vars.java @@ -36,8 +36,8 @@ public class Vars implements Loadable{ public static boolean loadLocales = true; /** Whether the logger is loaded. */ public static boolean loadedLogger = false, loadedFileLogger = false; - /** Whether to show the cliff button in the editor*/ - public static boolean addCliffButton = false; + /** Whether to enable various experimental features (e.g. cliffs) */ + public static boolean experimental = false; /** Maximum extra padding around deployment schematics. */ public static final int maxLoadoutSchematicPad = 5; /** Maximum schematic size.*/ diff --git a/core/src/mindustry/ai/BlockIndexer.java b/core/src/mindustry/ai/BlockIndexer.java index a75b0758ea..b61511684d 100644 --- a/core/src/mindustry/ai/BlockIndexer.java +++ b/core/src/mindustry/ai/BlockIndexer.java @@ -312,6 +312,11 @@ public class BlockIndexer{ return null; } + /** Find the closest ore block relative to a position. */ + public Tile findClosestOre(Unit unit, Item item){ + return findClosestOre(unit.x, unit.y, item); + } + /** @return extra unit cap of a team. This is added onto the base value. */ public int getExtraUnits(Team team){ return unitCaps[team.id]; @@ -457,8 +462,8 @@ public class BlockIndexer{ } public static class TileArray implements Iterable{ - private Seq tiles = new Seq<>(false, 16); - private IntSet contained = new IntSet(); + Seq tiles = new Seq<>(false, 16); + IntSet contained = new IntSet(); public void add(Tile tile){ if(contained.add(tile.pos())){ diff --git a/core/src/mindustry/ai/types/FormationAI.java b/core/src/mindustry/ai/types/FormationAI.java index 3226fbc300..002c52a75c 100644 --- a/core/src/mindustry/ai/types/FormationAI.java +++ b/core/src/mindustry/ai/types/FormationAI.java @@ -2,14 +2,17 @@ package mindustry.ai.types; import arc.math.*; import arc.math.geom.*; +import arc.struct.*; import arc.util.*; import mindustry.ai.formations.*; import mindustry.entities.units.*; import mindustry.gen.*; import mindustry.type.*; +import mindustry.world.*; import mindustry.world.blocks.storage.CoreBlock.*; public class FormationAI extends AIController implements FormationMember{ + private static Seq tiles = new Seq<>(); public Unit leader; private Vec3 target = new Vec3(); @@ -34,8 +37,8 @@ public class FormationAI extends AIController implements FormationMember{ return; } - if(unit.type.canBoost && unit.canPassOn()){ - unit.elevation = Mathf.approachDelta(unit.elevation, 0f, 0.08f); + if(unit.type.canBoost){ + unit.elevation = Mathf.approachDelta(unit.elevation, !unit.canPassOn() ? 1f : leader.type.canBoost ? leader.elevation : 0f, 0.08f); } unit.controlWeapons(true, leader.isShooting); @@ -51,16 +54,18 @@ public class FormationAI extends AIController implements FormationMember{ Vec2 realtarget = vec.set(target); - float margin = 3f; + float margin = 4f; + + float speed = unit.realSpeed(); if(unit.dst(realtarget) <= margin){ - unit.vel.approachDelta(Vec2.ZERO, type.speed * type.accel / 2f); + //unit.vel.approachDelta(Vec2.ZERO, speed * type.accel / 2f); }else{ - unit.moveAt(realtarget.sub(unit).limit(type.speed)); + unit.moveAt(realtarget.sub(unit).limit(speed)); } if(unit instanceof Minerc mine && leader instanceof Minerc com){ - if(mine.validMine(com.mineTile())){ + if(com.mineTile() != null && mine.validMine(com.mineTile())){ mine.mineTile(com.mineTile()); CoreBuild core = unit.team.core(); @@ -75,7 +80,6 @@ public class FormationAI extends AIController implements FormationMember{ }else{ mine.mineTile(null); } - } if(unit instanceof Builderc build && leader instanceof Builderc com && com.activelyBuilding()){ diff --git a/core/src/mindustry/ai/types/LogicAI.java b/core/src/mindustry/ai/types/LogicAI.java index 1166c2ff96..da86af9f59 100644 --- a/core/src/mindustry/ai/types/LogicAI.java +++ b/core/src/mindustry/ai/types/LogicAI.java @@ -14,7 +14,7 @@ import static mindustry.Vars.*; public class LogicAI extends AIController{ /** Minimum delay between item transfers. */ - public static final float transferDelay = 60f * 3f; + public static final float transferDelay = 60f * 2f; /** Time after which the unit resets its controlled and reverts to a normal unit. */ public static final float logicControlTimeout = 10f * 60f; @@ -44,8 +44,8 @@ public class LogicAI extends AIController{ @Override protected void updateMovement(){ - if(itemTimer > 0) itemTimer -= Time.delta; - if(payTimer > 0) payTimer -= Time.delta; + if(itemTimer >= 0) itemTimer -= Time.delta; + if(payTimer >= 0) payTimer -= Time.delta; if(targetTimer > 0f){ targetTimer -= Time.delta; diff --git a/core/src/mindustry/ai/types/MinerAI.java b/core/src/mindustry/ai/types/MinerAI.java index aa7d1403c5..1bb808d377 100644 --- a/core/src/mindustry/ai/types/MinerAI.java +++ b/core/src/mindustry/ai/types/MinerAI.java @@ -39,12 +39,12 @@ public class MinerAI extends AIController{ if(unit.stack.amount >= unit.type.itemCapacity || (targetItem != null && !unit.acceptsItem(targetItem))){ mining = false; }else{ - if(retarget() && targetItem != null){ - ore = indexer.findClosestOre(unit.x, unit.y, targetItem); + if(timer.get(timerTarget, 60) && targetItem != null){ + ore = indexer.findClosestOre(unit, targetItem); } if(ore != null){ - moveTo(ore, unit.type.range / 2f); + moveTo(ore, unit.type.range / 2f, 20f); if(unit.within(ore, unit.type.range)){ miner.mineTile(ore); diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 8c2d6e2c8f..7005389549 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -39,8 +39,8 @@ public class Blocks implements ContentList{ //environment air, spawn, cliff, deepwater, water, taintedWater, tar, slag, stone, craters, charr, sand, darksand, dirt, mud, ice, snow, darksandTaintedWater, space, dacite, stoneWall, dirtWall, sporeWall, iceWall, daciteWall, sporePine, snowPine, pine, shrubs, whiteTree, whiteTreeDead, sporeCluster, - iceSnow, sandWater, darksandWater, duneWall, sandWall, moss, sporeMoss, shale, shaleWall, shaleBoulder, sandBoulder, daciteBoulder, grass, salt, - metalFloor, metalFloorDamaged, metalFloor2, metalFloor3, metalFloor5, basalt, magmarock, hotrock, snowWall, boulder, snowBoulder, saltWall, + iceSnow, sandWater, darksandWater, duneWall, sandWall, moss, sporeMoss, shale, shaleWall, shaleBoulder, sandBoulder, daciteBoulder, boulder, snowBoulder, grass, salt, + metalFloor, metalFloorDamaged, metalFloor2, metalFloor3, metalFloor5, basalt, magmarock, hotrock, snowWall, saltWall, darkPanel1, darkPanel2, darkPanel3, darkPanel4, darkPanel5, darkPanel6, darkMetal, pebbles, tendrils, @@ -102,6 +102,8 @@ public class Blocks implements ContentList{ { alwaysReplace = true; hasShadow = false; + useColor = false; + wall = this; } @Override public void drawBase(Tile tile){} @@ -121,6 +123,7 @@ public class Blocks implements ContentList{ spawn = new OverlayFloor("spawn"){ { variants = 0; + needsSurface = false; } @Override public void drawBase(Tile tile){} @@ -317,6 +320,11 @@ public class Blocks implements ContentList{ attributes.set(Attribute.water, 0.3f); }}; + shale = new Floor("shale"){{ + variants = 3; + attributes.set(Attribute.oil, 1f); + }}; + stoneWall = new StaticWall("stone-wall"){{ variants = 2; }}; @@ -325,15 +333,6 @@ public class Blocks implements ContentList{ variants = 2; }}; - boulder = new Boulder("boulder"){{ - variants = 2; - }}; - - snowBoulder = new Boulder("snow-boulder"){{ - variants = 2; - snow.asFloor().decoration = ice.asFloor().decoration = iceSnow.asFloor().decoration = this; - }}; - dirtWall = new StaticWall("dirt-wall"){{ variants = 2; }}; @@ -363,6 +362,12 @@ public class Blocks implements ContentList{ saltWall = new StaticWall("salt-wall"); + shrubs = new StaticWall("shrubs"); + + shaleWall = new StaticWall("shale-wall"){{ + variants = 2; + }}; + sporePine = new StaticTree("spore-pine"){{ variants = 0; }}; @@ -375,8 +380,6 @@ public class Blocks implements ContentList{ variants = 0; }}; - shrubs = new StaticWall("shrubs"); - whiteTreeDead = new TreeBlock("white-tree-dead"); whiteTree = new TreeBlock("white-tree"); @@ -385,13 +388,13 @@ public class Blocks implements ContentList{ variants = 3; }}; - shale = new Floor("shale"){{ - variants = 3; - attributes.set(Attribute.oil, 1f); + boulder = new Boulder("boulder"){{ + variants = 2; }}; - shaleWall = new StaticWall("shale-wall"){{ + snowBoulder = new Boulder("snow-boulder"){{ variants = 2; + snow.asFloor().decoration = ice.asFloor().decoration = iceSnow.asFloor().decoration = salt.asFloor().decoration = this; }}; shaleBoulder = new Boulder("shale-boulder"){{ @@ -581,7 +584,7 @@ public class Blocks implements ContentList{ phaseWeaver = new GenericCrafter("phase-weaver"){{ requirements(Category.crafting, with(Items.silicon, 130, Items.lead, 120, Items.thorium, 75)); craftEffect = Fx.smeltsmoke; - outputItem = new ItemStack(Items.phasefabric, 1); + outputItem = new ItemStack(Items.phaseFabric, 1); craftTime = 120f; size = 2; hasPower = true; @@ -595,7 +598,7 @@ public class Blocks implements ContentList{ surgeSmelter = new GenericSmelter("alloy-smelter"){{ requirements(Category.crafting, with(Items.silicon, 80, Items.lead, 80, Items.thorium, 70)); craftEffect = Fx.smeltsmoke; - outputItem = new ItemStack(Items.surgealloy, 1); + outputItem = new ItemStack(Items.surgeAlloy, 1); craftTime = 75f; size = 3; hasPower = true; @@ -674,7 +677,7 @@ public class Blocks implements ContentList{ }}; disassembler = new Separator("disassembler"){{ - requirements(Category.crafting, with(Items.graphite, 140, Items.titanium, 100, Items.silicon, 150, Items.surgealloy, 70)); + requirements(Category.crafting, with(Items.graphite, 140, Items.titanium, 100, Items.silicon, 150, Items.surgeAlloy, 70)); results = with( Items.sand, 4, Items.graphite, 2, @@ -792,7 +795,7 @@ public class Blocks implements ContentList{ }}; phaseWall = new Wall("phase-wall"){{ - requirements(Category.defense, with(Items.phasefabric, 6)); + requirements(Category.defense, with(Items.phaseFabric, 6)); health = 150 * wallHealthMultiplier; chanceDeflect = 10f; flashHit = true; @@ -807,7 +810,7 @@ public class Blocks implements ContentList{ }}; surgeWall = new Wall("surge-wall"){{ - requirements(Category.defense, with(Items.surgealloy, 6)); + requirements(Category.defense, with(Items.surgeAlloy, 6)); health = 230 * wallHealthMultiplier; lightningChance = 0.05f; }}; @@ -885,25 +888,25 @@ public class Blocks implements ContentList{ healPercent = 11f; phaseBoost = 15f; health = 80 * size * size; - consumes.item(Items.phasefabric).boost(); + consumes.item(Items.phaseFabric).boost(); }}; overdriveProjector = new OverdriveProjector("overdrive-projector"){{ requirements(Category.effect, with(Items.lead, 100, Items.titanium, 75, Items.silicon, 75, Items.plastanium, 30)); consumes.power(3.50f); size = 2; - consumes.item(Items.phasefabric).boost(); + consumes.item(Items.phaseFabric).boost(); }}; overdriveDome = new OverdriveProjector("overdrive-dome"){{ - requirements(Category.effect, with(Items.lead, 200, Items.titanium, 130, Items.silicon, 130, Items.plastanium, 80, Items.surgealloy, 120)); + requirements(Category.effect, with(Items.lead, 200, Items.titanium, 130, Items.silicon, 130, Items.plastanium, 80, Items.surgeAlloy, 120)); consumes.power(10f); size = 3; range = 200f; speedBoost = 2.5f; useTime = 300f; hasBoost = false; - consumes.items(with(Items.phasefabric, 1, Items.silicon, 1)); + consumes.items(with(Items.phaseFabric, 1, Items.silicon, 1)); }}; forceProjector = new ForceProjector("force-projector"){{ @@ -916,7 +919,7 @@ public class Blocks implements ContentList{ cooldownLiquid = 1.2f; cooldownBrokenBase = 0.35f; - consumes.item(Items.phasefabric).boost(); + consumes.item(Items.phaseFabric).boost(); consumes.power(4f); }}; @@ -978,7 +981,7 @@ public class Blocks implements ContentList{ }}; phaseConveyor = new ItemBridge("phase-conveyor"){{ - requirements(Category.distribution, with(Items.phasefabric, 5, Items.silicon, 7, Items.lead, 10, Items.graphite, 10)); + requirements(Category.distribution, with(Items.phaseFabric, 5, Items.silicon, 7, Items.lead, 10, Items.graphite, 10)); range = 12; canOverdrive = false; hasPower = true; @@ -1104,7 +1107,7 @@ public class Blocks implements ContentList{ }}; phaseConduit = new LiquidBridge("phase-conduit"){{ - requirements(Category.liquid, with(Items.phasefabric, 5, Items.silicon, 7, Items.metaglass, 20, Items.titanium, 10)); + requirements(Category.liquid, with(Items.phaseFabric, 5, Items.silicon, 7, Items.metaglass, 20, Items.titanium, 10)); range = 12; hasPower = true; canOverdrive = false; @@ -1128,7 +1131,7 @@ public class Blocks implements ContentList{ }}; surgeTower = new PowerNode("surge-tower"){{ - requirements(Category.power, with(Items.titanium, 7, Items.lead, 10, Items.silicon, 15, Items.surgealloy, 15)); + requirements(Category.power, with(Items.titanium, 7, Items.lead, 10, Items.silicon, 15, Items.surgeAlloy, 15)); size = 2; maxNodes = 2; laserRange = 40f; @@ -1185,7 +1188,7 @@ public class Blocks implements ContentList{ }}; rtgGenerator = new DecayGenerator("rtg-generator"){{ - requirements(Category.power, with(Items.lead, 100, Items.silicon, 75, Items.phasefabric, 25, Items.plastanium, 75, Items.thorium, 50)); + requirements(Category.power, with(Items.lead, 100, Items.silicon, 75, Items.phaseFabric, 25, Items.plastanium, 75, Items.thorium, 50)); size = 2; powerProduction = 4.5f; itemDuration = 60 * 18f; @@ -1197,7 +1200,7 @@ public class Blocks implements ContentList{ }}; largeSolarPanel = new SolarGenerator("solar-panel-large"){{ - requirements(Category.power, with(Items.lead, 100, Items.silicon, 145, Items.phasefabric, 15)); + requirements(Category.power, with(Items.lead, 100, Items.silicon, 145, Items.phaseFabric, 15)); size = 3; powerProduction = 0.95f; }}; @@ -1214,7 +1217,7 @@ public class Blocks implements ContentList{ }}; impactReactor = new ImpactReactor("impact-reactor"){{ - requirements(Category.power, with(Items.lead, 500, Items.silicon, 300, Items.graphite, 400, Items.thorium, 100, Items.surgealloy, 250, Items.metaglass, 250)); + requirements(Category.power, with(Items.lead, 500, Items.silicon, 300, Items.graphite, 400, Items.thorium, 100, Items.surgeAlloy, 250, Items.metaglass, 250)); size = 4; health = 900; powerProduction = 130f; @@ -1325,7 +1328,7 @@ public class Blocks implements ContentList{ //region storage coreShard = new CoreBlock("core-shard"){{ - requirements(Category.effect, BuildVisibility.hidden, with(Items.copper, 2000, Items.lead, 1000)); + requirements(Category.effect, BuildVisibility.debugOnly, with(Items.copper, 2000, Items.lead, 1000)); alwaysUnlocked = true; unitType = UnitTypes.alpha; @@ -1364,12 +1367,14 @@ public class Blocks implements ContentList{ requirements(Category.effect, with(Items.titanium, 250, Items.thorium, 125)); size = 3; itemCapacity = 1000; + flags = EnumSet.of(BlockFlag.storage); }}; container = new StorageBlock("container"){{ requirements(Category.effect, with(Items.titanium, 100)); size = 2; itemCapacity = 300; + flags = EnumSet.of(BlockFlag.storage); }}; unloader = new Unloader("unloader"){{ @@ -1553,7 +1558,7 @@ public class Blocks implements ContentList{ ammo( Items.blastCompound, Bullets.missileExplosive, Items.pyratite, Bullets.missileIncendiary, - Items.surgealloy, Bullets.missileSurge + Items.surgeAlloy, Bullets.missileSurge ); reloadTime = 30f; shots = 4; @@ -1592,7 +1597,7 @@ public class Blocks implements ContentList{ }}; segment = new PointDefenseTurret("segment"){{ - requirements(Category.turret, with(Items.silicon, 130, Items.thorium, 80, Items.phasefabric, 40)); + requirements(Category.turret, with(Items.silicon, 130, Items.thorium, 80, Items.phaseFabric, 40)); health = 250 * size * size; range = 160f; @@ -1647,17 +1652,19 @@ public class Blocks implements ContentList{ float brange = range + 10f; ammo( - Items.thorium, new ShrapnelBulletType(){{ - length = brange; - damage = 105f; - ammoMultiplier = 5f; - }}, Items.titanium, new ShrapnelBulletType(){{ length = brange; damage = 66f; ammoMultiplier = 4f; width = 17f; reloadMultiplier = 1.3f; + }}, + Items.thorium, new ShrapnelBulletType(){{ + length = brange; + damage = 105f; + ammoMultiplier = 5f; + toColor = Pal.thoriumPink; + shootEffect = smokeEffect = Fx.thoriumShoot; }} ); }}; @@ -1698,7 +1705,7 @@ public class Blocks implements ContentList{ Items.metaglass, Bullets.fragGlass, Items.blastCompound, Bullets.fragExplosive, Items.plastanium, Bullets.fragPlastic, - Items.surgealloy, Bullets.fragSurge + Items.surgeAlloy, Bullets.fragSurge ); xRand = 4f; reloadTime = 8f; @@ -1716,9 +1723,9 @@ public class Blocks implements ContentList{ foreshadow = new ItemTurret("foreshadow"){{ float brange = range = 500f; - requirements(Category.turret, with(Items.copper, 1000, Items.metaglass, 600, Items.surgealloy, 300, Items.plastanium, 200, Items.silicon, 600)); + requirements(Category.turret, with(Items.copper, 1000, Items.metaglass, 600, Items.surgeAlloy, 300, Items.plastanium, 200, Items.silicon, 600)); ammo( - Items.surgealloy, new PointBulletType(){{ + Items.surgeAlloy, new PointBulletType(){{ shootEffect = Fx.instShoot; hitEffect = Fx.instHit; smokeEffect = Fx.smokeCloud; @@ -1756,7 +1763,7 @@ public class Blocks implements ContentList{ }}; spectre = new ItemTurret("spectre"){{ - requirements(Category.turret, with(Items.copper, 900, Items.graphite, 300, Items.surgealloy, 250, Items.plastanium, 175, Items.thorium, 250)); + requirements(Category.turret, with(Items.copper, 900, Items.graphite, 300, Items.surgeAlloy, 250, Items.plastanium, 175, Items.thorium, 250)); ammo( Items.graphite, Bullets.standardDenseBig, Items.pyratite, Bullets.standardIncendiaryBig, @@ -1782,7 +1789,7 @@ public class Blocks implements ContentList{ }}; meltdown = new LaserTurret("meltdown"){{ - requirements(Category.turret, with(Items.copper, 1200, Items.lead, 350, Items.graphite, 300, Items.surgealloy, 325, Items.silicon, 325)); + requirements(Category.turret, with(Items.copper, 1200, Items.lead, 350, Items.graphite, 300, Items.surgeAlloy, 325, Items.silicon, 325)); shootEffect = Fx.shootBigSmoke2; shootCone = 40f; recoilAmount = 4f; @@ -1890,7 +1897,7 @@ public class Blocks implements ContentList{ }}; exponentialReconstructor = new Reconstructor("exponential-reconstructor"){{ - requirements(Category.units, with(Items.lead, 2000, Items.silicon, 1000, Items.titanium, 2000, Items.thorium, 750, Items.plastanium, 450, Items.phasefabric, 600)); + requirements(Category.units, with(Items.lead, 2000, Items.silicon, 1000, Items.titanium, 2000, Items.thorium, 750, Items.plastanium, 450, Items.phaseFabric, 600)); size = 7; consumes.power(13f); @@ -1911,11 +1918,11 @@ public class Blocks implements ContentList{ }}; tetrativeReconstructor = new Reconstructor("tetrative-reconstructor"){{ - requirements(Category.units, with(Items.lead, 4000, Items.silicon, 3000, Items.thorium, 1000, Items.plastanium, 600, Items.phasefabric, 600, Items.surgealloy, 800)); + requirements(Category.units, with(Items.lead, 4000, Items.silicon, 3000, Items.thorium, 1000, Items.plastanium, 600, Items.phaseFabric, 600, Items.surgeAlloy, 800)); size = 9; consumes.power(25f); - consumes.items(with(Items.silicon, 1000, Items.plastanium, 600, Items.surgealloy, 500, Items.phasefabric, 350)); + consumes.items(with(Items.silicon, 1000, Items.plastanium, 600, Items.surgeAlloy, 500, Items.phaseFabric, 350)); consumes.liquid(Liquids.cryofluid, 3f); constructTime = 60f * 60f * 4; @@ -2030,7 +2037,7 @@ public class Blocks implements ContentList{ }}; microProcessor = new LogicBlock("micro-processor"){{ - requirements(Category.logic, with(Items.copper, 80, Items.lead, 50, Items.silicon, 50)); + requirements(Category.logic, with(Items.copper, 80, Items.lead, 50, Items.silicon, 30)); instructionsPerTick = 2; @@ -2038,7 +2045,7 @@ public class Blocks implements ContentList{ }}; logicProcessor = new LogicBlock("logic-processor"){{ - requirements(Category.logic, with(Items.lead, 320, Items.silicon, 100, Items.graphite, 60, Items.thorium, 50)); + requirements(Category.logic, with(Items.lead, 320, Items.silicon, 60, Items.graphite, 60, Items.thorium, 50)); instructionsPerTick = 8; @@ -2048,7 +2055,7 @@ public class Blocks implements ContentList{ }}; hyperProcessor = new LogicBlock("hyper-processor"){{ - requirements(Category.logic, with(Items.lead, 450, Items.silicon, 150, Items.thorium, 75, Items.surgealloy, 50)); + requirements(Category.logic, with(Items.lead, 450, Items.silicon, 130, Items.thorium, 75, Items.surgeAlloy, 50)); consumes.liquid(Liquids.cryofluid, 0.08f); hasLiquids = true; @@ -2067,7 +2074,7 @@ public class Blocks implements ContentList{ }}; memoryBank = new MemoryBlock("memory-bank"){{ - requirements(Category.logic, with(Items.graphite, 80, Items.silicon, 80, Items.phasefabric, 30)); + requirements(Category.logic, with(Items.graphite, 80, Items.silicon, 80, Items.phaseFabric, 30)); memoryCapacity = 512; size = 2; @@ -2082,7 +2089,7 @@ public class Blocks implements ContentList{ }}; largeLogicDisplay = new LogicDisplay("large-logic-display"){{ - requirements(Category.logic, with(Items.lead, 200, Items.silicon, 150, Items.metaglass, 100, Items.phasefabric, 75)); + requirements(Category.logic, with(Items.lead, 200, Items.silicon, 150, Items.metaglass, 100, Items.phaseFabric, 75)); displaySize = 176; diff --git a/core/src/mindustry/content/Bullets.java b/core/src/mindustry/content/Bullets.java index e2d42c0ef0..16aa3916ea 100644 --- a/core/src/mindustry/content/Bullets.java +++ b/core/src/mindustry/content/Bullets.java @@ -30,14 +30,14 @@ public class Bullets implements ContentList{ missileExplosive, missileIncendiary, missileSurge, //standard - standardCopper, standardDense, standardThorium, standardHoming, standardIncendiary, standardMechSmall, - standardGlaive, standardDenseBig, standardThoriumBig, standardIncendiaryBig, + standardCopper, standardDense, standardThorium, standardHoming, standardIncendiary, + standardDenseBig, standardThoriumBig, standardIncendiaryBig, //liquid waterShot, cryoShot, slagShot, oilShot, heavyWaterShot, heavyCryoShot, heavySlagShot, heavyOilShot, //environment, misc. - damageLightning, damageLightningGround, fireball, basicFlame, pyraFlame, driverBolt, healBullet, healBulletBig, frag; + damageLightning, damageLightningGround, fireball, basicFlame, pyraFlame, driverBolt, healBullet, healBulletBig; @Override public void load(){ @@ -327,23 +327,6 @@ public class Bullets implements ContentList{ lifetime = 60f; }}; - standardGlaive = new BasicBulletType(4f, 7.5f, "bullet"){{ - width = 10f; - height = 12f; - frontColor = Color.valueOf("feb380"); - backColor = Color.valueOf("ea8878"); - status = StatusEffects.burning; - lifetime = 60f; - }}; - - standardMechSmall = new BasicBulletType(4f, 9, "bullet"){{ - width = 11f; - height = 14f; - lifetime = 40f; - inaccuracy = 5f; - despawnEffect = Fx.hitBulletSmall; - }}; - standardDenseBig = new BasicBulletType(7f, 55, "bullet"){{ width = 15f; height = 21f; @@ -491,7 +474,7 @@ public class Bullets implements ContentList{ drag = 0.001f; ammoMultiplier = 2f; statusDuration = 60f * 4f; - damage = 0.1f; + damage = 0.2f; }}; heavyCryoShot = new LiquidBulletType(Liquids.cryofluid){{ @@ -502,7 +485,7 @@ public class Bullets implements ContentList{ drag = 0.001f; ammoMultiplier = 2f; statusDuration = 60f * 4f; - damage = 0.1f; + damage = 0.2f; }}; heavySlagShot = new LiquidBulletType(Liquids.slag){{ @@ -524,17 +507,9 @@ public class Bullets implements ContentList{ drag = 0.001f; ammoMultiplier = 2f; statusDuration = 60f * 4f; - damage = 0.1f; + damage = 0.2f; }}; driverBolt = new MassDriverBolt(); - - frag = new BasicBulletType(5f, 8, "bullet"){{ - width = 8f; - height = 9f; - shrinkY = 0.5f; - lifetime = 50f; - drag = 0.04f; - }}; } } diff --git a/core/src/mindustry/content/Fx.java b/core/src/mindustry/content/Fx.java index 5d0c45348d..a046bff46c 100644 --- a/core/src/mindustry/content/Fx.java +++ b/core/src/mindustry/content/Fx.java @@ -1217,7 +1217,15 @@ public class Fx{ randLenVectors(e.id, 7, 25f * e.finpow(), e.rotation, 50f, (x, y) -> { lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fin() * 5f + 2f); }); + }), + thoriumShoot = new Effect(12f, e -> { + color(Color.white, Pal.thoriumPink, e.fin()); + stroke(e.fout() * 1.2f + 0.5f); + + randLenVectors(e.id, 7, 25f * e.finpow(), e.rotation, 50f, (x, y) -> { + lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fin() * 5f + 2f); + }); }), reactorsmoke = new Effect(17, e -> { diff --git a/core/src/mindustry/content/Items.java b/core/src/mindustry/content/Items.java index e16784a61b..6d3964fd2c 100644 --- a/core/src/mindustry/content/Items.java +++ b/core/src/mindustry/content/Items.java @@ -5,7 +5,7 @@ import mindustry.ctype.*; import mindustry.type.*; public class Items implements ContentList{ - public static Item scrap, copper, lead, graphite, coal, titanium, thorium, silicon, plastanium, phasefabric, surgealloy, + public static Item scrap, copper, lead, graphite, coal, titanium, thorium, silicon, plastanium, phaseFabric, surgeAlloy, sporePod, sand, blastCompound, pyratite, metaglass; @Override @@ -66,12 +66,12 @@ public class Items implements ContentList{ cost = 1.3f; }}; - phasefabric = new Item("phase-fabric", Color.valueOf("f4ba6e")){{ + phaseFabric = new Item("phase-fabric", Color.valueOf("f4ba6e")){{ cost = 1.3f; radioactivity = 0.6f; }}; - surgealloy = new Item("surge-alloy", Color.valueOf("f3e979")){{ + surgeAlloy = new Item("surge-alloy", Color.valueOf("f3e979")){{ }}; sporePod = new Item("spore-pod", Color.valueOf("7457ce")){{ diff --git a/core/src/mindustry/content/SectorPresets.java b/core/src/mindustry/content/SectorPresets.java index e516bab740..5b85810141 100644 --- a/core/src/mindustry/content/SectorPresets.java +++ b/core/src/mindustry/content/SectorPresets.java @@ -17,6 +17,7 @@ public class SectorPresets implements ContentList{ groundZero = new SectorPreset("groundZero", serpulo, 15){{ alwaysUnlocked = true; + addStartingItems = true; captureWave = 10; difficulty = 1; }}; diff --git a/core/src/mindustry/content/StatusEffects.java b/core/src/mindustry/content/StatusEffects.java index 4cdfadec76..b498ccd2c0 100644 --- a/core/src/mindustry/content/StatusEffects.java +++ b/core/src/mindustry/content/StatusEffects.java @@ -6,6 +6,8 @@ import arc.math.*; import mindustry.ctype.*; import mindustry.game.EventType.*; import mindustry.type.*; +import mindustry.graphics.*; + import static mindustry.Vars.*; @@ -18,6 +20,7 @@ public class StatusEffects implements ContentList{ none = new StatusEffect("none"); burning = new StatusEffect("burning"){{ + color = Pal.lightFlame; damage = 0.12f; //over 8 seconds, this would be 60 damage effect = Fx.burning; @@ -32,6 +35,7 @@ public class StatusEffects implements ContentList{ }}; freezing = new StatusEffect("freezing"){{ + color = Color.valueOf("6ecdec"); speedMultiplier = 0.6f; healthMultiplier = 0.8f; effect = Fx.freezing; @@ -47,10 +51,12 @@ public class StatusEffects implements ContentList{ }}; unmoving = new StatusEffect("unmoving"){{ + color = Pal.gray; speedMultiplier = 0.001f; }}; slow = new StatusEffect("slow"){{ + color = Pal.lightishGray; speedMultiplier = 0.4f; }}; @@ -80,6 +86,7 @@ public class StatusEffects implements ContentList{ }}; melting = new StatusEffect("melting"){{ + color = Color.valueOf("ffa166"); speedMultiplier = 0.8f; healthMultiplier = 0.8f; damage = 0.3f; @@ -92,6 +99,7 @@ public class StatusEffects implements ContentList{ }}; sapped = new StatusEffect("sapped"){{ + color = Pal.sap; speedMultiplier = 0.7f; healthMultiplier = 0.8f; effect = Fx.sapped; @@ -99,12 +107,14 @@ public class StatusEffects implements ContentList{ }}; sporeSlowed = new StatusEffect("spore-slowed"){{ + color = Pal.spore; speedMultiplier = 0.8f; effect = Fx.sapped; effectChance = 0.04f; }}; tarred = new StatusEffect("tarred"){{ + color = Color.valueOf("313131"); speedMultiplier = 0.6f; effect = Fx.oily; @@ -115,6 +125,7 @@ public class StatusEffects implements ContentList{ }}; overdrive = new StatusEffect("overdrive"){{ + color = Pal.accent; healthMultiplier = 0.95f; speedMultiplier = 1.15f; damageMultiplier = 1.4f; @@ -124,6 +135,7 @@ public class StatusEffects implements ContentList{ }}; overclock = new StatusEffect("overclock"){{ + color = Pal.accent; speedMultiplier = 1.15f; damageMultiplier = 1.15f; reloadMultiplier = 1.25f; @@ -132,20 +144,27 @@ public class StatusEffects implements ContentList{ }}; shielded = new StatusEffect("shielded"){{ + color = Pal.accent; healthMultiplier = 3f; }}; boss = new StatusEffect("boss"){{ + color = Pal.health; permanent = true; damageMultiplier = 2f; healthMultiplier = 2f; }}; - shocked = new StatusEffect("shocked"); + shocked = new StatusEffect("shocked"){{ + color = Pal.lancerLaser; + }}; - blasted = new StatusEffect("blasted"); + blasted = new StatusEffect("blasted"){{ + color = Color.valueOf("ff795e"); + }}; corroded = new StatusEffect("corroded"){{ + color = Pal.plastanium; damage = 0.1f; }}; } diff --git a/core/src/mindustry/content/TechTree.java b/core/src/mindustry/content/TechTree.java index e9aa178388..63eb9f2679 100644 --- a/core/src/mindustry/content/TechTree.java +++ b/core/src/mindustry/content/TechTree.java @@ -161,7 +161,7 @@ public class TechTree implements ContentList{ node(Items.plastanium, with(Items.titanium, 10000, Items.silicon, 10000), () -> { node(plastaniumCompressor, () -> { - node(Items.phasefabric, with(Items.thorium, 15000, Items.sand, 30000, Items.silicon, 5000), () -> { + node(Items.phaseFabric, with(Items.thorium, 15000, Items.sand, 30000, Items.silicon, 5000), () -> { node(phaseWeaver, () -> { }); @@ -177,7 +177,7 @@ public class TechTree implements ContentList{ node(Items.scrap, with(Items.copper, 20000, Items.sand, 10000), () -> { node(Liquids.slag, with(Items.scrap, 4000), () -> { node(melter, () -> { - node(Items.surgealloy, with(Items.thorium, 20000, Items.silicon, 30000, Items.lead, 40000), () -> { + node(Items.surgeAlloy, with(Items.thorium, 20000, Items.silicon, 30000, Items.lead, 40000), () -> { node(surgeSmelter, () -> { }); @@ -605,8 +605,6 @@ public class TechTree implements ContentList{ public final ItemStack[] finishedRequirements; /** Extra objectives needed to research this. */ public Seq objectives = new Seq<>(); - /** Time required to research this content, in seconds. */ - public float time; /** Nodes that depend on this node. */ public final Seq children = new Seq<>(); @@ -617,7 +615,6 @@ public class TechTree implements ContentList{ this.content = content; this.requirements = requirements; this.depth = parent == null ? 0 : parent.depth + 1; - this.time = Seq.with(requirements).mapFloat(i -> i.item.cost * i.amount).sum() * 10; this.finishedRequirements = new ItemStack[requirements.length]; //load up the requirements that have been finished if settings are available @@ -632,6 +629,14 @@ public class TechTree implements ContentList{ all.add(this); } + /** Resets finished requirements and saves. */ + public void reset(){ + for(ItemStack stack : finishedRequirements){ + stack.amount = 0; + } + save(); + } + /** Removes this node from the tech tree. */ public void remove(){ all.remove(this); diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index f7ba45b156..fe4b143b37 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -276,7 +276,7 @@ public class UnitTypes implements ContentList{ armor = 1f; commandLimit = 8; - abilities.add(new HealFieldAbility(10f, 60f * 4, 60f)); + abilities.add(new RepairFieldAbility(10f, 60f * 4, 60f)); ammoType = AmmoTypes.power; weapons.add(new Weapon("heal-weapon"){{ @@ -305,7 +305,7 @@ public class UnitTypes implements ContentList{ mineSpeed = 5f; commandLimit = 8; - abilities.add(new ShieldFieldAbility(20f, 40f, 60f * 5, 60f)); + abilities.add(new ShieldRegenFieldAbility(20f, 40f, 60f * 5, 60f)); ammoType = AmmoTypes.power; weapons.add(new Weapon("heal-shotgun-weapon"){{ @@ -1127,7 +1127,7 @@ public class UnitTypes implements ContentList{ flying = true; drag = 0.06f; accel = 0.12f; - speed = 1.1f; + speed = 1.5f; health = 100; engineSize = 1.8f; engineOffset = 5.7f; @@ -1145,7 +1145,7 @@ public class UnitTypes implements ContentList{ flying = true; drag = 0.05f; - speed = 1.9f; + speed = 2.6f; rotateSpeed = 15f; accel = 0.1f; range = 130f; @@ -1154,14 +1154,13 @@ public class UnitTypes implements ContentList{ engineOffset = 6.5f; hitSize = 8f; lowAltitude = true; - isCounted = false; ammoType = AmmoTypes.power; mineTier = 2; mineSpeed = 3.5f; - abilities.add(new HealFieldAbility(5f, 60f * 5, 50f)); + abilities.add(new RepairFieldAbility(5f, 60f * 5, 50f)); weapons.add(new Weapon("heal-weapon-mount"){{ top = false; @@ -1201,7 +1200,7 @@ public class UnitTypes implements ContentList{ mineTier = 3; health = 500; armor = 5f; - speed = 1.8f; + speed = 2.4f; accel = 0.06f; drag = 0.017f; lowAltitude = true; @@ -1235,7 +1234,7 @@ public class UnitTypes implements ContentList{ quad = new UnitType("quad"){{ armor = 8f; health = 6000; - speed = 1.2f; + speed = 1.4f; rotateSpeed = 2f; accel = 0.05f; drag = 0.017f; @@ -1300,7 +1299,7 @@ public class UnitTypes implements ContentList{ oct = new UnitType("oct"){{ armor = 16f; health = 24000; - speed = 0.6f; + speed = 0.8f; rotateSpeed = 1f; accel = 0.04f; drag = 0.018f; @@ -1318,7 +1317,7 @@ public class UnitTypes implements ContentList{ ammoCapacity = 1300; ammoResupplyAmount = 20; - abilities.add(new ForceFieldAbility(140f, 4f, 7000f, 60f * 8), new HealFieldAbility(130f, 60f * 2, 140f)); + abilities.add(new ForceFieldAbility(140f, 4f, 7000f, 60f * 8), new RepairFieldAbility(130f, 60f * 2, 140f)); }}; //endregion @@ -1430,7 +1429,7 @@ public class UnitTypes implements ContentList{ trailY = -9f; trailScl = 1.5f; - abilities.add(new ShieldFieldAbility(20f, 40f, 60f * 4, 60f)); + abilities.add(new ShieldRegenFieldAbility(20f, 40f, 60f * 4, 60f)); weapons.add(new Weapon("large-artillery"){{ reload = 65f; @@ -1547,7 +1546,7 @@ public class UnitTypes implements ContentList{ xRand = 8f; shotDelay = 1f; - bullet = new MissileBulletType(4.2f, 30){{ + bullet = new MissileBulletType(4.2f, 40){{ homingPower = 0.12f; width = 8f; height = 8f; @@ -1555,8 +1554,8 @@ public class UnitTypes implements ContentList{ drag = -0.003f; homingRange = 80f; keepVelocity = false; - splashDamageRadius = 30f; - splashDamage = 35f; + splashDamageRadius = 35f; + splashDamage = 45f; lifetime = 56f; trailColor = Pal.bulletYellowBack; backColor = Pal.bulletYellowBack; @@ -1569,7 +1568,7 @@ public class UnitTypes implements ContentList{ }}); weapons.add(new Weapon("large-bullet-mount"){{ - reload = 80f; + reload = 60f; cooldownTime = 90f; x = 70f/4f; y = -66f/4f; @@ -1584,7 +1583,7 @@ public class UnitTypes implements ContentList{ shots = 3; shotDelay = 4f; inaccuracy = 1f; - bullet = new BasicBulletType(7f, 50){{ + bullet = new BasicBulletType(7f, 55){{ width = 13f; height = 19f; shootEffect = Fx.shootBig; @@ -1650,7 +1649,7 @@ public class UnitTypes implements ContentList{ isCounted = false; flying = true; - mineSpeed = 6f; + mineSpeed = 6.5f; mineTier = 1; buildSpeed = 0.5f; drag = 0.05f; @@ -1736,7 +1735,7 @@ public class UnitTypes implements ContentList{ itemCapacity = 70; health = 220f; engineOffset = 6f; - hitSize = 10f; + hitSize = 11f; commandLimit = 7; weapons.add(new Weapon("small-mount-weapon"){{ @@ -1771,6 +1770,7 @@ public class UnitTypes implements ContentList{ health = 1; rotateSpeed = 360f; itemCapacity = 0; + commandLimit = 0; } @Override diff --git a/core/src/mindustry/content/Weathers.java b/core/src/mindustry/content/Weathers.java index b120b7ef2b..52dcdeec76 100644 --- a/core/src/mindustry/content/Weathers.java +++ b/core/src/mindustry/content/Weathers.java @@ -39,7 +39,7 @@ public class Weathers implements ContentList{ minAlpha = 0f; maxAlpha = 0.2f; density = 1500f; - baseSpeed = 6.1f; + baseSpeed = 5.4f; attrs.set(Attribute.light, -0.1f); attrs.set(Attribute.water, -0.1f); opacityMultiplier = 0.8f; diff --git a/core/src/mindustry/core/Control.java b/core/src/mindustry/core/Control.java index e24881692f..30f9eae747 100644 --- a/core/src/mindustry/core/Control.java +++ b/core/src/mindustry/core/Control.java @@ -35,7 +35,7 @@ import static mindustry.Vars.*; /** * Control module. - * Handles all input, saving, keybinds and keybinds. + * Handles all input, saving and keybinds. * Should not handle any logic-critical state. * This class is not created in the headless server. */ @@ -181,6 +181,12 @@ public class Control implements ApplicationListener, Loadable{ Time.run(Fx.coreLand.lifetime, () -> { Fx.launch.at(core); Effect.shake(5f, 5f, core); + + if(state.isCampaign()){ + ui.announce("[accent]" + state.rules.sector.name() + "\n" + + (state.rules.sector.info.resources.any() ? "[lightgray]" + bundle.get("sectors.resources") + "[white] " + + state.rules.sector.info.resources.toString(" ", u -> u.emoji()) : ""), 5); + } }); }); @@ -264,7 +270,6 @@ public class Control implements ApplicationListener, Loadable{ slot.load(); slot.setAutosave(true); state.rules.sector = sector; - state.secinfo = state.rules.sector.info; //if there is no base, simulate a new game and place the right loadout at the spawn position if(state.rules.defaultTeam.cores().isEmpty()){ @@ -282,8 +287,12 @@ public class Control implements ApplicationListener, Loadable{ //reset wave so things are more fair state.wave = 1; + //reset win wave?? + state.rules.winWave = sector.preset != null ? sector.preset.captureWave : 40; + //kill all units, since they should be dead anwyay Groups.unit.clear(); + Groups.fire.clear(); Tile spawn = world.tile(sector.info.spawnPosition); Schematics.placeLaunchLoadout(spawn.x, spawn.y); @@ -311,8 +320,8 @@ public class Control implements ApplicationListener, Loadable{ world.loadSector(sector); state.rules.sector = sector; //assign origin when launching - state.secinfo.origin = origin; - state.secinfo.destination = origin; + sector.info.origin = origin; + sector.info.destination = origin; logic.play(); control.saves.saveSector(sector); Events.fire(Trigger.newGame); @@ -403,13 +412,15 @@ public class Control implements ApplicationListener, Loadable{ @Override public void pause(){ - wasPaused = state.is(State.paused); - if(state.is(State.playing)) state.set(State.paused); + if(settings.getBool("backgroundpause", true)){ + wasPaused = state.is(State.paused); + if(state.is(State.playing)) state.set(State.paused); + } } @Override public void resume(){ - if(state.is(State.paused) && !wasPaused){ + if(state.is(State.paused) && !wasPaused && settings.getBool("backgroundpause", true)){ state.set(State.playing); } } diff --git a/core/src/mindustry/core/GameState.java b/core/src/mindustry/core/GameState.java index 41f14074c8..219e4acfb9 100644 --- a/core/src/mindustry/core/GameState.java +++ b/core/src/mindustry/core/GameState.java @@ -26,8 +26,6 @@ public class GameState{ public GameStats stats = new GameStats(); /** Global attributes of the environment, calculated by weather. */ public Attributes envAttrs = new Attributes(); - /** Sector information. Only valid in the campaign. */ - public SectorInfo secinfo = new SectorInfo(); /** Team data. Gets reset every new game. */ public Teams teams = new Teams(); /** Number of enemies in the game; only used clientside in servers. */ diff --git a/core/src/mindustry/core/Logic.java b/core/src/mindustry/core/Logic.java index a96ea101a9..ce08b21c0a 100644 --- a/core/src/mindustry/core/Logic.java +++ b/core/src/mindustry/core/Logic.java @@ -55,15 +55,14 @@ public class Logic implements ApplicationListener{ } }); - Events.on(LaunchItemEvent.class, e -> state.secinfo.handleItemExport(e.stack)); - //when loading a 'damaged' sector, propagate the damage Events.on(SaveLoadEvent.class, e -> { if(state.isCampaign()){ - state.secinfo.write(); + SectorInfo info = state.rules.sector.info; + info.write(); //how much wave time has passed - int wavesPassed = state.secinfo.wavesPassed; + int wavesPassed = info.wavesPassed; //wave has passed, remove all enemies, they are assumed to be dead if(wavesPassed > 0){ @@ -84,10 +83,10 @@ public class Logic implements ApplicationListener{ } //reset values - state.secinfo.damage = 0f; - state.secinfo.wavesPassed = 0; - state.secinfo.hasCore = true; - state.secinfo.secondsPassed = 0; + info.damage = 0f; + info.wavesPassed = 0; + info.hasCore = true; + info.secondsPassed = 0; state.rules.sector.saveInfo(); } @@ -199,19 +198,13 @@ public class Logic implements ApplicationListener{ state.gameOver = true; Events.fire(new GameOverEvent(state.rules.waveTeam)); }else if(state.rules.attackMode){ - Team alive = null; + //count # of teams alive + int countAlive = state.teams.getActive().count(TeamData::hasCore); - for(TeamData team : state.teams.getActive()){ - if(team.hasCore()){ - if(alive != null){ - return; - } - alive = team.team; - } - } - - if(alive != null && !state.gameOver){ - Events.fire(new GameOverEvent(alive)); + if((countAlive <= 1 || (!state.rules.pvp && state.rules.defaultTeam.core() == null)) && !state.gameOver){ + //find team that won + TeamData left = state.teams.getActive().find(TeamData::hasCore); + Events.fire(new GameOverEvent(left == null ? Team.derelict : left.team)); state.gameOver = true; } } @@ -252,7 +245,7 @@ public class Logic implements ApplicationListener{ if(!(content instanceof UnlockableContent u)) return; state.rules.researched.add(u.name); - ui.hudfrag.showUnlock(u); + Events.fire(new UnlockEvent(u)); } @Override @@ -279,7 +272,7 @@ public class Logic implements ApplicationListener{ state.teams.updateTeamStats(); if(state.isCampaign()){ - state.secinfo.update(); + state.rules.sector.info.update(); } if(state.isCampaign()){ diff --git a/core/src/mindustry/core/NetClient.java b/core/src/mindustry/core/NetClient.java index 3c6214fd85..13dc4c1221 100644 --- a/core/src/mindustry/core/NetClient.java +++ b/core/src/mindustry/core/NetClient.java @@ -293,6 +293,13 @@ public class NetClient implements ApplicationListener{ setHudText(message); } + @Remote(variants = Variant.both) + public static void announce(String message){ + if(message == null) return; + + ui.announce(message); + } + @Remote(variants = Variant.both) public static void infoMessage(String message){ if(message == null) return; diff --git a/core/src/mindustry/core/Renderer.java b/core/src/mindustry/core/Renderer.java index 47b7500e10..c30b526aa7 100644 --- a/core/src/mindustry/core/Renderer.java +++ b/core/src/mindustry/core/Renderer.java @@ -27,10 +27,11 @@ public class Renderer implements ApplicationListener{ public final Pixelator pixelator = new Pixelator(); public PlanetRenderer planets; + public @Nullable Bloom bloom; public FrameBuffer effectBuffer = new FrameBuffer(); public float laserOpacity = 1f; - private Bloom bloom; + //TODO unused private FxProcessor fx = new FxProcessor(); private Color clearColor = new Color(0f, 0f, 0f, 1f); private float targetscale = Scl.scl(4); diff --git a/core/src/mindustry/core/UI.java b/core/src/mindustry/core/UI.java index f0a4757966..d7ec068be8 100644 --- a/core/src/mindustry/core/UI.java +++ b/core/src/mindustry/core/UI.java @@ -378,6 +378,7 @@ public class UI implements ApplicationListener, Loadable{ cont.add(text).pad(2f).growX().wrap().get().setAlignment(Align.center); cont.row(); cont.button("@ok", this::hide).size(120, 50).pad(4); + closeOnBack(); }}.show(); } @@ -405,6 +406,7 @@ public class UI implements ApplicationListener, Loadable{ cont.button("@ok", this::hide).size(110, 50).fillX().left(); cont.row(); cont.add(col).colspan(2).pad(2); + closeOnBack(); }}.show(); } @@ -420,6 +422,7 @@ public class UI implements ApplicationListener, Loadable{ cont.add(text).width(400f).wrap().get().setAlignment(align, align); cont.row(); buttons.button("@ok", this::hide).size(110, 50).pad(4); + closeOnBack(); }}.show(); } @@ -427,6 +430,7 @@ public class UI implements ApplicationListener, Loadable{ new Dialog(titleText){{ cont.margin(15).add(text).width(400f).wrap().left().get().setAlignment(Align.left, Align.left); buttons.button("@ok", this::hide).size(110, 50).pad(4); + closeOnBack(); }}.show(); } @@ -436,6 +440,7 @@ public class UI implements ApplicationListener, Loadable{ titleTable.row(); titleTable.image().color(Pal.accent).height(3f).growX().pad(2f); buttons.button("@ok", this::hide).size(110, 50).pad(4); + closeOnBack(); }}.show(); } @@ -487,13 +492,19 @@ public class UI implements ApplicationListener, Loadable{ dialog.show(); } + /** Display text in the middle of the screen, then fade out. */ public void announce(String text){ - Table t = new Table(); + announce(text, 3); + } + + /** Display text in the middle of the screen, then fade out. */ + public void announce(String text, float duration){ + Table t = new Table(Styles.black3); t.touchable = Touchable.disabled; - t.background(Styles.black3).margin(8f) - .add(text).style(Styles.outlineLabel).labelAlign(Align.center); + t.margin(8f).add(text).style(Styles.outlineLabel).labelAlign(Align.center); t.update(() -> t.setPosition(Core.graphics.getWidth()/2f, Core.graphics.getHeight()/2f, Align.center)); - t.actions(Actions.fadeOut(3, Interp.pow4In), Actions.remove()); + t.actions(Actions.fadeOut(duration, Interp.pow4In), Actions.remove()); + t.pack(); Core.scene.add(t); } diff --git a/core/src/mindustry/ctype/UnlockableContent.java b/core/src/mindustry/ctype/UnlockableContent.java index 9020cd0ff1..88c3e75927 100644 --- a/core/src/mindustry/ctype/UnlockableContent.java +++ b/core/src/mindustry/ctype/UnlockableContent.java @@ -24,6 +24,8 @@ public abstract class UnlockableContent extends MappableContent{ public @Nullable String description; /** Whether this content is always unlocked in the tech tree. */ public boolean alwaysUnlocked = false; + /** Special logic icon ID. */ + public int iconId = 0; /** Icons by Cicon ID.*/ protected TextureRegion[] cicons = new TextureRegion[Cicon.all.length]; /** Unlock state. Loaded from settings. Do not modify outside of the constructor. */ @@ -74,9 +76,11 @@ public abstract class UnlockableContent extends MappableContent{ cicons[icon.ordinal()] = Core.atlas.find(getContentType().name() + "-" + name + "-" + icon.name(), Core.atlas.find(getContentType().name() + "-" + name + "-full", + Core.atlas.find(name + "-" + icon.name(), + Core.atlas.find(name + "-full", Core.atlas.find(name, Core.atlas.find(getContentType().name() + "-" + name, - Core.atlas.find(name + "1"))))); + Core.atlas.find(name + "1"))))))); } return cicons[icon.ordinal()]; } @@ -113,7 +117,7 @@ public abstract class UnlockableContent extends MappableContent{ } /** Unlocks this content, but does not fire any events. */ - public void quiteUnlock(){ + public void quietUnlock(){ if(!unlocked()){ unlocked = true; Core.settings.put(name + "-unlocked", true); @@ -121,10 +125,18 @@ public abstract class UnlockableContent extends MappableContent{ } public boolean unlocked(){ - if(net.client()) return state.rules.researched.contains(name); + if(net != null && net.client()) return state.rules.researched.contains(name); return unlocked || alwaysUnlocked; } + /** Locks this content again. */ + public void clearUnlock(){ + if(unlocked){ + unlocked = false; + Core.settings.put(name + "-unlocked", false); + } + } + /** @return whether this content is unlocked, or the player is in a custom (non-campaign) game. */ public boolean unlockedNow(){ return unlocked() || !state.isCampaign(); diff --git a/core/src/mindustry/editor/EditorTile.java b/core/src/mindustry/editor/EditorTile.java index 2d08b9d3d2..f735bd790c 100644 --- a/core/src/mindustry/editor/EditorTile.java +++ b/core/src/mindustry/editor/EditorTile.java @@ -26,7 +26,7 @@ public class EditorTile extends Tile{ if(type instanceof OverlayFloor){ //don't place on liquids - if(floor.hasSurface()){ + if(floor.hasSurface() || !type.needsSurface){ setOverlayID(type.id); } return; @@ -75,7 +75,7 @@ public class EditorTile extends Tile{ return; } - if(floor.isLiquid) return; + if(!floor.hasSurface() && overlay.asFloor().needsSurface) return; if(overlay() == overlay) return; op(OpType.overlay, this.overlay.id); super.setOverlay(overlay); diff --git a/core/src/mindustry/editor/EditorTool.java b/core/src/mindustry/editor/EditorTool.java index 194ec97e4c..cd4b63935e 100644 --- a/core/src/mindustry/editor/EditorTool.java +++ b/core/src/mindustry/editor/EditorTool.java @@ -118,7 +118,7 @@ public enum EditorTool{ if(editor.drawBlock.isOverlay()){ Block dest = tile.overlay(); if(dest == editor.drawBlock) return; - tester = t -> t.overlay() == dest && t.floor().hasSurface(); + tester = t -> t.overlay() == dest && (t.floor().hasSurface() || !t.floor().needsSurface); setter = t -> t.setOverlay(editor.drawBlock); }else if(editor.drawBlock.isFloor()){ Block dest = tile.floor(); diff --git a/core/src/mindustry/editor/MapEditorDialog.java b/core/src/mindustry/editor/MapEditorDialog.java index dfad7c03ab..1094bc970a 100644 --- a/core/src/mindustry/editor/MapEditorDialog.java +++ b/core/src/mindustry/editor/MapEditorDialog.java @@ -258,6 +258,11 @@ public class MapEditorDialog extends Dialog implements Disposable{ Groups.unit.clear(); Groups.build.clear(); logic.play(); + + if(player.team().core() == null){ + player.set(world.width() * tilesize/2f, world.height() * tilesize/2f); + player.unit(UnitTypes.alpha.spawn(player.team(), player.x, player.y)); + } }); } @@ -565,7 +570,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ }).growX().top(); } - if(addCliffButton){ + if(experimental){ mid.row(); mid.table(t -> { diff --git a/core/src/mindustry/editor/MapGenerateDialog.java b/core/src/mindustry/editor/MapGenerateDialog.java index 6a06e0b966..55576742c4 100644 --- a/core/src/mindustry/editor/MapGenerateDialog.java +++ b/core/src/mindustry/editor/MapGenerateDialog.java @@ -29,7 +29,8 @@ public class MapGenerateDialog extends BaseDialog{ private final Prov[] filterTypes = new Prov[]{ NoiseFilter::new, ScatterFilter::new, TerrainFilter::new, DistortFilter::new, RiverNoiseFilter::new, OreFilter::new, OreMedianFilter::new, MedianFilter::new, - BlendFilter::new, MirrorFilter::new, ClearFilter::new, CoreSpawnFilter::new, EnemySpawnFilter::new + BlendFilter::new, MirrorFilter::new, ClearFilter::new, CoreSpawnFilter::new, + EnemySpawnFilter::new, SpawnPathFilter::new }; private final MapEditor editor; private final boolean applied; @@ -44,9 +45,8 @@ public class MapGenerateDialog extends BaseDialog{ private AsyncExecutor executor = new AsyncExecutor(1); private AsyncResult result; boolean generating; - private GenTile returnTile = new GenTile(); - private GenTile[][] buffer1, buffer2; + private long[] buffer1, buffer2; private Cons> applier; CachedTile ctile = new CachedTile(){ //nothing. @@ -54,6 +54,11 @@ public class MapGenerateDialog extends BaseDialog{ protected void changeBuild(Team team, Prov entityprov, int rotation){ } + + @Override + public void setBlock(Block type, Team team, int rotation, Prov entityprov){ + this.block = type; + } }; /** @param applied whether or not to use the applied in-game mode. */ @@ -65,7 +70,7 @@ public class MapGenerateDialog extends BaseDialog{ shown(this::setup); addCloseButton(); if(applied){ - buttons.button("@editor.apply", () -> { + buttons.button("@editor.apply", Icon.ok, () -> { ui.loadAnd(() -> { apply(); hide(); @@ -78,14 +83,14 @@ public class MapGenerateDialog extends BaseDialog{ update(); }).size(160f, 64f); } - buttons.button("@editor.randomize", () -> { + buttons.button("@editor.randomize", Icon.refresh, () -> { for(GenerateFilter filter : filters){ filter.randomize(); } update(); }).size(160f, 64f); - buttons.button("@add", Icon.add, this::showAdd).height(64f).width(140f); + buttons.button("@add", Icon.add, this::showAdd).height(64f).width(150f); if(!applied){ hidden(this::apply); @@ -107,38 +112,36 @@ public class MapGenerateDialog extends BaseDialog{ /** Applies the specified filters to the editor. */ public void applyToEditor(Seq filters){ //writeback buffer - GenTile[][] writeTiles = new GenTile[editor.width()][editor.height()]; - - for(int x = 0; x < editor.width(); x++){ - for(int y = 0; y < editor.height(); y++){ - writeTiles[x][y] = new GenTile(); - } - } + long[] writeTiles = new long[editor.width() * editor.height()]; for(GenerateFilter filter : filters){ input.begin(filter, editor.width(), editor.height(), editor::tile); + //write to buffer for(int x = 0; x < editor.width(); x++){ for(int y = 0; y < editor.height(); y++){ Tile tile = editor.tile(x, y); - input.apply(x, y, tile.floor(), tile.block(), tile.overlay()); + input.apply(x, y, tile.block(), tile.floor(), tile.overlay()); filter.apply(input); - writeTiles[x][y].set(input.floor, input.block, input.ore, tile.team()); + writeTiles[x + y*world.width()] = PackTile.get(input.block.id, input.floor.id, input.overlay.id); } } editor.load(() -> { //read from buffer back into tiles - for(int x = 0; x < editor.width(); x++){ - for(int y = 0; y < editor.height(); y++){ - Tile tile = editor.tile(x, y); - GenTile write = writeTiles[x][y]; + for(int i = 0; i < editor.width() * editor.height(); i++){ + Tile tile = world.tiles.geti(i); + long write = writeTiles[i]; - tile.setFloor((Floor)content.block(write.floor)); - tile.setBlock(content.block(write.block)); - tile.setTeam(Team.get(write.team)); - tile.setOverlay(content.block(write.ore)); + Block block = content.block(PackTile.block(write)), floor = content.block(PackTile.floor(write)), overlay = content.block(PackTile.overlay(write)); + + //don't mess up synthetic stuff. + if(!tile.synthetic() && !block.synthetic()){ + tile.setBlock(block); } + + tile.setFloor((Floor)floor); + tile.setOverlay(overlay); } }); } @@ -201,15 +204,8 @@ public class MapGenerateDialog extends BaseDialog{ rebuildFilters(); } - GenTile[][] create(){ - GenTile[][] out = new GenTile[editor.width() / scaling][editor.height() / scaling]; - - for(int x = 0; x < out.length; x++){ - for(int y = 0; y < out[0].length; y++){ - out[x][y] = new GenTile(); - } - } - return out; + long[] create(){ + return new long[(editor.width() / scaling) * (editor.height() / scaling)]; } void rebuildFilters(){ @@ -295,7 +291,7 @@ public class MapGenerateDialog extends BaseDialog{ for(Prov gen : filterTypes){ GenerateFilter filter = gen.get(); - if((!applied && filter.isBuffered()) || (filter.isPost() && applied)) continue; + if((filter.isPost() && applied)) continue; selection.cont.button(filter.name(), () -> { filters.add(filter); @@ -317,9 +313,15 @@ public class MapGenerateDialog extends BaseDialog{ selection.show(); } - GenTile dset(Tile tile){ - returnTile.set(tile); - return returnTile; + long pack(Tile tile){ + return PackTile.get(tile.blockID(), tile.floorID(), tile.overlayID()); + } + + Tile unpack(long tile){ + ctile.setFloor((Floor)content.block(PackTile.floor(tile))); + ctile.setBlock(content.block(PackTile.block(tile))); + ctile.setOverlay(content.block(PackTile.overlay(tile))); + return ctile; } void apply(){ @@ -350,6 +352,7 @@ public class MapGenerateDialog extends BaseDialog{ result = executor.submit(() -> { try{ + int w = pixmap.getWidth(); world.setGenerating(true); generating = true; @@ -357,24 +360,24 @@ public class MapGenerateDialog extends BaseDialog{ //write to buffer1 for reading for(int px = 0; px < pixmap.getWidth(); px++){ for(int py = 0; py < pixmap.getHeight(); py++){ - buffer1[px][py].set(editor.tile(px * scaling, py * scaling)); + buffer1[px + py*w] = pack(editor.tile(px * scaling, py * scaling)); } } } for(GenerateFilter filter : copy){ - input.begin(filter, editor.width(), editor.height(), (x, y) -> buffer1[Mathf.clamp(x / scaling, 0, pixmap.getWidth()-1)][Mathf.clamp(y / scaling, 0, pixmap.getHeight()-1)].tile()); + input.begin(filter, editor.width(), editor.height(), (x, y) -> unpack(buffer1[Mathf.clamp(x / scaling, 0, pixmap.getWidth()-1) + w* Mathf.clamp(y / scaling, 0, pixmap.getHeight()-1)])); //read from buffer1 and write to buffer2 pixmap.each((px, py) -> { int x = px * scaling, y = py * scaling; - GenTile tile = buffer1[px][py]; - input.apply(x, y, content.block(tile.floor), content.block(tile.block), content.block(tile.ore)); + long tile = buffer1[px + py * w]; + input.apply(x, y, content.block(PackTile.block(tile)), content.block(PackTile.floor(tile)), content.block(PackTile.overlay(tile))); filter.apply(input); - buffer2[px][py].set(input.floor, input.block, input.ore, Team.get(tile.team)); + buffer2[px + py * w] = PackTile.get(input.block.id, input.floor.id, input.overlay.id); }); - pixmap.each((px, py) -> buffer1[px][py].set(buffer2[px][py])); + pixmap.each((px, py) -> buffer1[px + py*w] = buffer2[px + py*w]); } for(int px = 0; px < pixmap.getWidth(); px++){ @@ -383,10 +386,10 @@ public class MapGenerateDialog extends BaseDialog{ //get result from buffer1 if there's filters left, otherwise get from editor directly if(filters.isEmpty()){ Tile tile = editor.tile(px * scaling, py * scaling); - color = MapIO.colorFor(tile.floor(), tile.block(), tile.overlay(), Team.derelict); + color = MapIO.colorFor(tile.block(), tile.floor(), tile.overlay(), Team.derelict); }else{ - GenTile tile = buffer1[px][py]; - color = MapIO.colorFor(content.block(tile.floor), content.block(tile.block), content.block(tile.ore), Team.derelict); + long tile = buffer1[px + py*w]; + color = MapIO.colorFor(content.block(PackTile.block(tile)), content.block(PackTile.floor(tile)), content.block(PackTile.overlay(tile)), Team.derelict); } pixmap.draw(px, pixmap.getHeight() - 1 - py, color); } @@ -406,39 +409,4 @@ public class MapGenerateDialog extends BaseDialog{ world.setGenerating(false); }); } - - private class GenTile{ - public byte team; - public short block, floor, ore; - - GenTile(){ - } - - public void set(Block floor, Block wall, Block ore, Team team){ - this.floor = floor.id; - this.block = wall.id; - this.ore = !floor.asFloor().hasSurface() ? 0 : ore.id; - this.team = (byte)team.id; - } - - public void set(GenTile other){ - this.floor = other.floor; - this.block = other.block; - this.ore = other.ore; - this.team = other.team; - } - - public GenTile set(Tile other){ - set(other.floor(), other.block(), other.overlay(), other.team()); - return this; - } - - Tile tile(){ - ctile.setFloor((Floor)content.block(floor)); - ctile.setBlock(content.block(block)); - ctile.setOverlay(content.block(ore)); - ctile.setTeam(Team.get(team)); - return ctile; - } - } } diff --git a/core/src/mindustry/editor/MapView.java b/core/src/mindustry/editor/MapView.java index a54c0f49b8..4db21dec66 100644 --- a/core/src/mindustry/editor/MapView.java +++ b/core/src/mindustry/editor/MapView.java @@ -321,7 +321,7 @@ public class MapView extends Element implements GestureListener{ } private boolean active(){ - return Core.scene.getKeyboardFocus() != null + return Core.scene != null && Core.scene.getKeyboardFocus() != null && Core.scene.getKeyboardFocus().isDescendantOf(ui.editor) && ui.editor.isShown() && tool == EditorTool.zoom && Core.scene.hit(Core.input.mouse().x, Core.input.mouse().y, true) == this; diff --git a/core/src/mindustry/editor/WaveInfoDialog.java b/core/src/mindustry/editor/WaveInfoDialog.java index d5b957e143..a374613b24 100644 --- a/core/src/mindustry/editor/WaveInfoDialog.java +++ b/core/src/mindustry/editor/WaveInfoDialog.java @@ -1,7 +1,6 @@ package mindustry.editor; import arc.*; -import arc.input.*; import arc.math.*; import arc.scene.event.*; import arc.scene.ui.*; @@ -35,15 +34,9 @@ public class WaveInfoDialog extends BaseDialog{ super("@waves.title"); shown(this::setup); - hidden(() -> { - state.rules.spawns = groups; - }); + hidden(() -> state.rules.spawns = groups); - keyDown(key -> { - if(key == KeyCode.escape || key == KeyCode.back){ - Core.app.post(this::hide); - } - }); + addCloseListener(); onResize(this::setup); addCloseButton(); @@ -101,6 +94,14 @@ public class WaveInfoDialog extends BaseDialog{ view(1); } }); + + if(experimental){ + buttons.button("Random", Icon.refresh, () -> { + groups.clear(); + groups = DefaultWaves.generate(1f / 10f); + updateWaves(); + }).width(200f); + } } void view(int amount){ @@ -159,7 +160,7 @@ public class WaveInfoDialog extends BaseDialog{ t.margin(0).defaults().pad(3).padLeft(5f).growX().left(); t.button(b -> { b.left(); - b.image(group.type.icon(mindustry.ui.Cicon.medium)).size(32f).padRight(3); + b.image(group.type.icon(Cicon.medium)).size(32f).padRight(3).scaling(Scaling.fit); b.add(group.type.localizedName).color(Pal.accent); b.add().growX(); @@ -262,7 +263,7 @@ public class WaveInfoDialog extends BaseDialog{ if(type.isHidden()) continue; p.button(t -> { t.left(); - t.image(type.icon(Cicon.medium)).size(40f).padRight(2f); + t.image(type.icon(Cicon.medium)).size(8 * 4).scaling(Scaling.fit).padRight(2f); t.add(type.localizedName); }, () -> { lastType = type; diff --git a/core/src/mindustry/entities/Fires.java b/core/src/mindustry/entities/Fires.java index 2906b4e7d7..754a8766b9 100644 --- a/core/src/mindustry/entities/Fires.java +++ b/core/src/mindustry/entities/Fires.java @@ -23,14 +23,14 @@ public class Fires{ if(fire == null){ fire = Fire.create(); - fire.tile(tile); - fire.lifetime(baseLifetime); + fire.tile = tile; + fire.lifetime = baseLifetime; fire.set(tile.worldx(), tile.worldy()); fire.add(); map.put(tile.pos(), fire); }else{ - fire.lifetime(baseLifetime); - fire.time(0f); + fire.lifetime = baseLifetime; + fire.time = 0f; } } diff --git a/core/src/mindustry/entities/GroupDefs.java b/core/src/mindustry/entities/GroupDefs.java index 60bdbb5fd3..3ddef67d65 100644 --- a/core/src/mindustry/entities/GroupDefs.java +++ b/core/src/mindustry/entities/GroupDefs.java @@ -11,5 +11,6 @@ class GroupDefs{ @GroupDef(value = Buildingc.class) G build; @GroupDef(value = Syncc.class, mapping = true) G sync; @GroupDef(value = Drawc.class) G draw; + @GroupDef(value = Firec.class) G fire; @GroupDef(value = WeatherStatec.class) G weather; } diff --git a/core/src/mindustry/entities/Predict.java b/core/src/mindustry/entities/Predict.java index 03c41e5778..4186ef4bbb 100644 --- a/core/src/mindustry/entities/Predict.java +++ b/core/src/mindustry/entities/Predict.java @@ -53,13 +53,13 @@ public class Predict{ public static Vec2 intercept(Position src, Position dst, float v){ float ddx = 0, ddy = 0; - if(dst instanceof Hitboxc){ - ddx += ((Hitboxc)dst).deltaX(); - ddy += ((Hitboxc)dst).deltaY(); + if(dst instanceof Hitboxc h){ + ddx += h.deltaX(); + ddy += h.deltaY(); } - if(src instanceof Hitboxc){ - ddx -= ((Hitboxc)src).deltaX()/(Time.delta); - ddy -= ((Hitboxc)src).deltaY()/(Time.delta); + if(src instanceof Hitboxc h){ + ddx -= h.deltaX()/(Time.delta); + ddy -= h.deltaY()/(Time.delta); } return intercept(src.getX(), src.getY(), dst.getX(), dst.getY(), ddx, ddy, v); } diff --git a/core/src/mindustry/entities/abilities/Ability.java b/core/src/mindustry/entities/abilities/Ability.java index 466bfc1980..cb6e94547b 100644 --- a/core/src/mindustry/entities/abilities/Ability.java +++ b/core/src/mindustry/entities/abilities/Ability.java @@ -1,5 +1,6 @@ package mindustry.entities.abilities; +import arc.*; import mindustry.gen.*; public abstract class Ability implements Cloneable{ @@ -14,4 +15,9 @@ public abstract class Ability implements Cloneable{ throw new RuntimeException("java sucks", e); } } + + /** @return localized ability name; mods should override this. */ + public String localized(){ + return Core.bundle.get("ability." + getClass().getSimpleName().replace("Ability", "").toLowerCase()); + } } diff --git a/core/src/mindustry/entities/abilities/HealFieldAbility.java b/core/src/mindustry/entities/abilities/RepairFieldAbility.java similarity index 86% rename from core/src/mindustry/entities/abilities/HealFieldAbility.java rename to core/src/mindustry/entities/abilities/RepairFieldAbility.java index 90f800ec84..8df0a96e2c 100644 --- a/core/src/mindustry/entities/abilities/HealFieldAbility.java +++ b/core/src/mindustry/entities/abilities/RepairFieldAbility.java @@ -5,7 +5,7 @@ import mindustry.content.*; import mindustry.entities.*; import mindustry.gen.*; -public class HealFieldAbility extends Ability{ +public class RepairFieldAbility extends Ability{ public float amount = 1, reload = 100, range = 60; public Effect healEffect = Fx.heal; public Effect activeEffect = Fx.healWaveDynamic; @@ -13,9 +13,9 @@ public class HealFieldAbility extends Ability{ protected float timer; protected boolean wasHealed = false; - HealFieldAbility(){} + RepairFieldAbility(){} - public HealFieldAbility(float amount, float reload, float range){ + public RepairFieldAbility(float amount, float reload, float range){ this.amount = amount; this.reload = reload; this.range = range; diff --git a/core/src/mindustry/entities/abilities/ShieldFieldAbility.java b/core/src/mindustry/entities/abilities/ShieldRegenFieldAbility.java similarity index 86% rename from core/src/mindustry/entities/abilities/ShieldFieldAbility.java rename to core/src/mindustry/entities/abilities/ShieldRegenFieldAbility.java index 739751f6c1..8af8d2390a 100644 --- a/core/src/mindustry/entities/abilities/ShieldFieldAbility.java +++ b/core/src/mindustry/entities/abilities/ShieldRegenFieldAbility.java @@ -5,7 +5,7 @@ import mindustry.content.*; import mindustry.entities.*; import mindustry.gen.*; -public class ShieldFieldAbility extends Ability{ +public class ShieldRegenFieldAbility extends Ability{ public float amount = 1, max = 100f, reload = 100, range = 60; public Effect applyEffect = Fx.shieldApply; public Effect activeEffect = Fx.shieldWave; @@ -13,9 +13,9 @@ public class ShieldFieldAbility extends Ability{ protected float timer; protected boolean applied = false; - ShieldFieldAbility(){} + ShieldRegenFieldAbility(){} - public ShieldFieldAbility(float amount, float max, float reload, float range){ + public ShieldRegenFieldAbility(float amount, float max, float reload, float range){ this.amount = amount; this.max = max; this.reload = reload; diff --git a/core/src/mindustry/entities/abilities/UnitSpawnAbility.java b/core/src/mindustry/entities/abilities/UnitSpawnAbility.java index 74140114d9..95eb3bcf5b 100644 --- a/core/src/mindustry/entities/abilities/UnitSpawnAbility.java +++ b/core/src/mindustry/entities/abilities/UnitSpawnAbility.java @@ -1,5 +1,6 @@ package mindustry.entities.abilities; +import arc.*; import arc.graphics.g2d.*; import arc.math.*; import arc.util.*; @@ -56,4 +57,9 @@ public class UnitSpawnAbility extends Ability{ }); } } + + @Override + public String localized(){ + return Core.bundle.format("ability.unitspawn", type.localizedName); + } } diff --git a/core/src/mindustry/entities/comp/BuildingComp.java b/core/src/mindustry/entities/comp/BuildingComp.java index 84b6160d25..8363d16d02 100644 --- a/core/src/mindustry/entities/comp/BuildingComp.java +++ b/core/src/mindustry/entities/comp/BuildingComp.java @@ -869,7 +869,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, public void placed(){ if(net.client()) return; - if((block.consumesPower && !block.outputsPower) || (!block.consumesPower && block.outputsPower)){ + if(block.consumesPower || block.outputsPower){ int range = 10; tempTiles.clear(); Geometry.circle(tileX(), tileY(), range, (x, y) -> { @@ -1319,7 +1319,13 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, @Override public void control(LAccess type, Object p1, double p2, double p3, double p4){ - + if(type == LAccess.configure && block.logicConfigurable){ + //change config only if it's new + Object prev = senseObject(LAccess.config); + if(prev != p1){ + configureAny(p1); + } + } } @Override diff --git a/core/src/mindustry/entities/comp/MinerComp.java b/core/src/mindustry/entities/comp/MinerComp.java index 6bac9dbd60..bdeead4fe9 100644 --- a/core/src/mindustry/entities/comp/MinerComp.java +++ b/core/src/mindustry/entities/comp/MinerComp.java @@ -32,12 +32,16 @@ abstract class MinerComp implements Itemsc, Posc, Teamc, Rotc, Drawc, Unitc{ } boolean mining(){ - return mineTile != null && !(((Object)this) instanceof Builderc && ((Builderc)(Object)this).activelyBuilding()); + return mineTile != null && !(((Object)this) instanceof Builderc b && b.activelyBuilding()); + } + + public boolean validMine(Tile tile, boolean checkDst){ + return !(tile == null || tile.block() != Blocks.air || (!within(tile.worldx(), tile.worldy(), miningRange) && checkDst) + || tile.drop() == null || !canMine(tile.drop())); } public boolean validMine(Tile tile){ - return !(tile == null || tile.block() != Blocks.air || !within(tile.worldx(), tile.worldy(), miningRange) - || tile.drop() == null || !canMine(tile.drop())); + return validMine(tile, true); } @Override @@ -54,7 +58,7 @@ abstract class MinerComp implements Itemsc, Posc, Teamc, Rotc, Drawc, Unitc{ } } - if(core == null || !validMine(mineTile)){ + if(!validMine(mineTile)){ mineTile = null; mineTimer = 0f; }else if(mining()){ @@ -69,7 +73,7 @@ abstract class MinerComp implements Itemsc, Posc, Teamc, Rotc, Drawc, Unitc{ if(mineTimer >= 50f + item.hardness*15f){ mineTimer = 0; - if(within(core, mineTransferRange) && core.acceptStack(item, 1, this) == 1 && offloadImmediately()){ + if(core != null && within(core, mineTransferRange) && core.acceptStack(item, 1, this) == 1 && offloadImmediately()){ Call.transferItemTo(item, 1, mineTile.worldx() + Mathf.range(tilesize / 2f), mineTile.worldy() + Mathf.range(tilesize / 2f), core); @@ -84,15 +88,13 @@ abstract class MinerComp implements Itemsc, Posc, Teamc, Rotc, Drawc, Unitc{ mineTimer = 0f; } } - - } } @Override public void draw(){ if(!mining()) return; - float focusLen = 4f + Mathf.absin(Time.time(), 1.1f, 0.5f); + float focusLen = hitSize() / 2f + Mathf.absin(Time.time(), 1.1f, 0.5f); float swingScl = 12f, swingMag = tilesize / 8f; float flashScl = 0.3f; diff --git a/core/src/mindustry/entities/comp/PlayerComp.java b/core/src/mindustry/entities/comp/PlayerComp.java index 736a1b68e5..512487b0e0 100644 --- a/core/src/mindustry/entities/comp/PlayerComp.java +++ b/core/src/mindustry/entities/comp/PlayerComp.java @@ -78,6 +78,7 @@ abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc, Dra team = state.rules.defaultTeam; admin = typing = false; textFadeTime = 0f; + x = y = 0f; if(!dead()){ unit.controller(unit.type.createController()); unit = Nulls.unit; diff --git a/core/src/mindustry/entities/comp/StatusComp.java b/core/src/mindustry/entities/comp/StatusComp.java index fcce0d0a02..c4ea7be07a 100644 --- a/core/src/mindustry/entities/comp/StatusComp.java +++ b/core/src/mindustry/entities/comp/StatusComp.java @@ -114,13 +114,14 @@ abstract class StatusComp implements Posc, Flyingc{ StatusEntry entry = statuses.get(index++); entry.time = Math.max(entry.time - Time.delta, 0); - applied.set(entry.effect.id); - if(entry.time <= 0 && !entry.effect.permanent){ + if(entry.effect == null || (entry.time <= 0 && !entry.effect.permanent)){ Pools.free(entry); index --; statuses.remove(index); }else{ + applied.set(entry.effect.id); + speedMultiplier *= entry.effect.speedMultiplier; healthMultiplier *= entry.effect.healthMultiplier; damageMultiplier *= entry.effect.damageMultiplier; diff --git a/core/src/mindustry/entities/comp/UnitComp.java b/core/src/mindustry/entities/comp/UnitComp.java index ca85eacd07..11efcf9948 100644 --- a/core/src/mindustry/entities/comp/UnitComp.java +++ b/core/src/mindustry/entities/comp/UnitComp.java @@ -1,6 +1,7 @@ package mindustry.entities.comp; import arc.*; +import arc.func.*; import arc.graphics.g2d.*; import arc.math.*; import arc.math.geom.*; @@ -71,6 +72,12 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I return Mathf.lerp(1f, type.canBoost ? type.boostMultiplier : 1f, elevation) * type.speed; } + /** Iterates through this unit and everything it is controlling. */ + public void eachGroup(Cons cons){ + cons.get(self()); + controlling().each(cons); + } + @Override public float range(){ return type.range; diff --git a/core/src/mindustry/entities/units/AIController.java b/core/src/mindustry/entities/units/AIController.java index ca005fe25d..5df9db4a60 100644 --- a/core/src/mindustry/entities/units/AIController.java +++ b/core/src/mindustry/entities/units/AIController.java @@ -160,7 +160,7 @@ public class AIController implements UnitController{ } protected boolean retarget(){ - return timer.get(timerTarget, 30); + return timer.get(timerTarget, 40); } protected Teamc findTarget(float x, float y, float range, boolean air, boolean ground){ diff --git a/core/src/mindustry/game/DefaultWaves.java b/core/src/mindustry/game/DefaultWaves.java index d33af5a41a..48582e0eb2 100644 --- a/core/src/mindustry/game/DefaultWaves.java +++ b/core/src/mindustry/game/DefaultWaves.java @@ -39,7 +39,7 @@ public class DefaultWaves{ unitScaling = 1.7f; spacing = 2; max = 4; - shieldScaling = 15f; + shieldScaling = 25f; }}, new SpawnGroup(pulsar){{ @@ -62,7 +62,7 @@ public class DefaultWaves{ unitScaling = 1; unitAmount = 4; spacing = 2; - shieldScaling = 10f; + shieldScaling = 20f; max = 14; }}, @@ -79,7 +79,8 @@ public class DefaultWaves{ spacing = 3; unitScaling = 1; max = 10; - shieldScaling = 10f; + shieldScaling = 30f; + shields = 100; effect = StatusEffects.overdrive; }}, @@ -178,7 +179,7 @@ public class DefaultWaves{ unitAmount = 2; unitScaling = 3; spacing = 4; - shieldScaling = 20; + shieldScaling = 30; }}, new SpawnGroup(atrax){{ @@ -186,7 +187,7 @@ public class DefaultWaves{ unitAmount = 4; unitScaling = 1; spacing = 3; - shieldScaling = 5f; + shieldScaling = 10f; }}, new SpawnGroup(scepter){{ @@ -194,7 +195,7 @@ public class DefaultWaves{ unitAmount = 1; unitScaling = 1; spacing = 30; - shieldScaling = 10f; + shieldScaling = 30f; }}, new SpawnGroup(reign){{ @@ -202,7 +203,7 @@ public class DefaultWaves{ unitAmount = 1; unitScaling = 1; spacing = 40; - shieldScaling = 20f; + shieldScaling = 30f; }}, new SpawnGroup(antumbra){{ @@ -210,7 +211,7 @@ public class DefaultWaves{ unitAmount = 1; unitScaling = 1; spacing = 40; - shieldScaling = 20f; + shieldScaling = 30f; }}, new SpawnGroup(vela){{ @@ -218,7 +219,7 @@ public class DefaultWaves{ unitAmount = 1; unitScaling = 1; spacing = 30; - shieldScaling = 20f; + shieldScaling = 30f; }}, new SpawnGroup(corvus){{ @@ -236,7 +237,7 @@ public class DefaultWaves{ unitScaling = 3; spacing = 4; shields = 40f; - shieldScaling = 20f; + shieldScaling = 30f; }}, new SpawnGroup(toxopid){{ @@ -252,20 +253,16 @@ public class DefaultWaves{ return spawns == null ? new Seq<>() : spawns; } - //TODO move elsewhere public static Seq generate(float difficulty){ return generate(new Rand(), difficulty); } - //TODO move elsewhere public static Seq generate(Rand rand, float difficulty){ UnitType[][] species = { {dagger, mace, fortress, scepter, reign}, {nova, pulsar, quasar, vela, corvus}, {crawler, atrax, spiroct, arkyid, toxopid}, - //{risso, minke, bryde, sei, omura}, //questionable choices - {poly, poly, mega, quad, quad}, - {flare, horizon, zenith, antumbra, eclipse} + {flare, horizon, rand.chance(0.2) && difficulty > 0.5 ? poly : zenith, rand.chance(0.5) ? quad : antumbra, rand.chance(0.1) ? quad : eclipse} }; //required progression: @@ -277,6 +274,7 @@ public class DefaultWaves{ int cap = 150; float shieldStart = 30, shieldsPerWave = 20 + difficulty*30f; + float[] scaling = {1, 1, 1.5f, 3f, 4f}; Intc createProgression = start -> { //main sequence @@ -285,18 +283,19 @@ public class DefaultWaves{ for(int i = start; i < cap;){ int f = i; - int next = rand.random(8, 16); + int next = rand.random(8, 16) + curTier * 4; float shieldAmount = Math.max((i - shieldStart) * shieldsPerWave, 0); int space = start == 0 ? 1 : rand.random(1, 2); + int ctier = curTier; //main progression out.add(new SpawnGroup(curSpecies[Math.min(curTier, curSpecies.length - 1)]){{ - unitAmount = f == 0 ? 1 : 10; + unitAmount = f == start ? 1 : 6 / (int)scaling[ctier]; begin = f; end = f + next >= cap ? never : f + next; max = 14; - unitScaling = rand.random(1f, 3f); + unitScaling = (difficulty < 0.4f ? rand.random(2f, 4f) : rand.random(1f, 3f)) * scaling[ctier]; shields = shieldAmount; shieldScaling = shieldsPerWave; spacing = space; @@ -304,18 +303,18 @@ public class DefaultWaves{ //extra progression that tails out, blends in out.add(new SpawnGroup(curSpecies[Math.min(curTier, curSpecies.length - 1)]){{ - unitAmount = 6; - begin = f + next; - end = f + next + rand.random(8, 12); - max = 11; - unitScaling = rand.random(2f); - spacing = rand.random(2, 3); - shields = shieldAmount; + unitAmount = 3 / (int)scaling[ctier]; + begin = f + next - 1; + end = f + next + rand.random(6, 10); + max = 6; + unitScaling = rand.random(1f, 2f); + spacing = rand.random(2, 4); + shields = shieldAmount/2f; shieldScaling = shieldsPerWave; }}); - i += next; - if(curTier < 3 || rand.chance(0.2)){ + i += next + 1; + if(curTier < 3 || rand.chance(0.05)){ curTier ++; } @@ -331,11 +330,11 @@ public class DefaultWaves{ createProgression.get(0); - int step = 5 + rand.random(3); + int step = 5 + rand.random(5); while(step <= cap){ createProgression.get(step); - step += (int)(rand.random(13, 25) * Mathf.lerp(1f, 0.5f, difficulty)); + step += (int)(rand.random(15, 30) * Mathf.lerp(1f, 0.5f, difficulty)); } int bossWave = (int)(rand.random(30, 60) * Mathf.lerp(1f, 0.7f, difficulty)); diff --git a/core/src/mindustry/game/Objectives.java b/core/src/mindustry/game/Objectives.java index 7fc844a180..7faa162624 100644 --- a/core/src/mindustry/game/Objectives.java +++ b/core/src/mindustry/game/Objectives.java @@ -38,7 +38,7 @@ public class Objectives{ @Override public boolean complete(){ - return preset.sector.save != null && preset.sector.save.meta.wave >= preset.captureWave; + return preset.sector.save != null && !preset.sector.isAttacked() && preset.sector.hasBase(); } @Override diff --git a/core/src/mindustry/game/Schematics.java b/core/src/mindustry/game/Schematics.java index 20fe7c36c4..44824e3674 100644 --- a/core/src/mindustry/game/Schematics.java +++ b/core/src/mindustry/game/Schematics.java @@ -288,6 +288,10 @@ public class Schematics implements Loadable{ return loadouts.get(block, Seq::new); } + public ObjectMap> getLoadouts(){ + return loadouts; + } + /** Checks a schematic for deployment validity and adds it to the cache. */ private void checkLoadout(Schematic s, boolean validate){ Stile core = s.tiles.find(t -> t.block instanceof CoreBlock); diff --git a/core/src/mindustry/game/SectorInfo.java b/core/src/mindustry/game/SectorInfo.java index 3b2b4df3dd..3ef6946424 100644 --- a/core/src/mindustry/game/SectorInfo.java +++ b/core/src/mindustry/game/SectorInfo.java @@ -156,7 +156,6 @@ public class SectorInfo{ damage = 0; if(state.rules.sector != null){ - state.rules.sector.info = this; state.rules.sector.saveInfo(); } diff --git a/core/src/mindustry/game/Universe.java b/core/src/mindustry/game/Universe.java index 9b1064a791..fa96e491a2 100644 --- a/core/src/mindustry/game/Universe.java +++ b/core/src/mindustry/game/Universe.java @@ -197,7 +197,7 @@ public class Universe{ if(!sector.isAttacked() && turn > invasionGracePeriod){ //invasion chance depends on # of nearby bases if(Mathf.chance(baseInvasionChance * sector.near().count(Sector::hasEnemyBase))){ - int waveMax = Math.max(sector.info.winWave, sector.isBeingPlayed() ? state.wave : 0) + Mathf.random(2, 5) * 5; + int waveMax = Math.max(sector.info.winWave, state.wave) + Mathf.random(2, 5) * 5; //assign invasion-related things if(sector.isBeingPlayed()){ @@ -264,7 +264,6 @@ public class Universe{ if(Core.settings.has("unlocks")){ LegacyIO.readResearch(); - Core.settings.remove("unlocks"); } } diff --git a/core/src/mindustry/graphics/BlockRenderer.java b/core/src/mindustry/graphics/BlockRenderer.java index afe2e3182b..7e90fba3ff 100644 --- a/core/src/mindustry/graphics/BlockRenderer.java +++ b/core/src/mindustry/graphics/BlockRenderer.java @@ -293,7 +293,7 @@ public class BlockRenderer implements Disposable{ entity.drawLight(); }else if(tile.block().emitLight){ tile.block().drawEnvironmentLight(tile); - }else if(tile.floor().emitLight){ + }else if(tile.floor().emitLight && !tile.block().solid && world.getDarkness(tile.x, tile.y) < 3){ //only draw floor light under non-solid blocks tile.floor().drawEnvironmentLight(tile); } } diff --git a/core/src/mindustry/graphics/Drawf.java b/core/src/mindustry/graphics/Drawf.java index f1d45bebc3..166b7e9e5c 100644 --- a/core/src/mindustry/graphics/Drawf.java +++ b/core/src/mindustry/graphics/Drawf.java @@ -136,16 +136,24 @@ public class Drawf{ Draw.reset(); } - public static void square(float x, float y, float radius, Color color){ + public static void square(float x, float y, float radius, float rotation, Color color){ Lines.stroke(3f, Pal.gray); - Lines.square(x, y, radius + 1f, 45); + Lines.square(x, y, radius + 1f, rotation); Lines.stroke(1f, color); - Lines.square(x, y, radius + 1f, 45); + Lines.square(x, y, radius + 1f, rotation); Draw.reset(); } + public static void square(float x, float y, float radius, float rotation){ + square(x, y, radius, rotation, Pal.accent); + } + + public static void square(float x, float y, float radius, Color color){ + square(x, y, radius, 45, color); + } + public static void square(float x, float y, float radius){ - square(x, y, radius, Pal.accent); + square(x, y, radius, 45); } public static void arrow(float x, float y, float x2, float y2, float length, float radius){ diff --git a/core/src/mindustry/graphics/MinimapRenderer.java b/core/src/mindustry/graphics/MinimapRenderer.java index 1c34b4424e..b3c39bfa27 100644 --- a/core/src/mindustry/graphics/MinimapRenderer.java +++ b/core/src/mindustry/graphics/MinimapRenderer.java @@ -158,7 +158,7 @@ public class MinimapRenderer implements Disposable{ private int colorFor(Tile tile){ if(tile == null) return 0; int bc = tile.block().minimapColor(tile); - Color color = Tmp.c1.set(bc == 0 ? MapIO.colorFor(tile.floor(), tile.block(), tile.overlay(), tile.team()) : bc); + Color color = Tmp.c1.set(bc == 0 ? MapIO.colorFor(tile.block(), tile.floor(), tile.overlay(), tile.team()) : bc); color.mul(1f - Mathf.clamp(world.getDarkness(tile.x, tile.y) / 4f)); return color.rgba(); diff --git a/core/src/mindustry/graphics/OverlayRenderer.java b/core/src/mindustry/graphics/OverlayRenderer.java index 9bb3a95fa3..c28859d5f3 100644 --- a/core/src/mindustry/graphics/OverlayRenderer.java +++ b/core/src/mindustry/graphics/OverlayRenderer.java @@ -36,7 +36,7 @@ public class OverlayRenderer{ public void drawTop(){ - if(!player.dead()){ + if(!player.dead() && ui.hudfrag.shown){ if(Core.settings.getBool("playerindicators")){ for(Player player : Groups.player){ if(Vars.player != player && Vars.player.team() == player.team()){ diff --git a/core/src/mindustry/graphics/Pal.java b/core/src/mindustry/graphics/Pal.java index 8bb3cd9e70..8a6fefa8a4 100644 --- a/core/src/mindustry/graphics/Pal.java +++ b/core/src/mindustry/graphics/Pal.java @@ -5,6 +5,8 @@ import arc.graphics.*; public class Pal{ public static Color + thoriumPink = Color.valueOf("f9a3c7"), + items = Color.valueOf("2ea756"), command = Color.valueOf("eab678"), diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java index 906d96d56e..ac43a96cfb 100644 --- a/core/src/mindustry/input/DesktopInput.java +++ b/core/src/mindustry/input/DesktopInput.java @@ -279,7 +279,7 @@ public class DesktopInput extends InputHandler{ if(isPlacing() && mode == placing){ updateLine(selectX, selectY); - }else if(!selectRequests.isEmpty()){ + }else if(!selectRequests.isEmpty() && !ui.chatfrag.shown()){ rotateRequests(selectRequests, Mathf.sign(Core.input.axisTap(Binding.rotate))); } } @@ -610,7 +610,7 @@ public class DesktopInput extends InputHandler{ baseSpeed = unit.minFormationSpeed * 0.95f; } - float speed = baseSpeed * Mathf.lerp(1f, unit.isCommanding() ? 1f : unit.type.canBoost ? unit.type.boostMultiplier : 1f, unit.elevation) * strafePenalty; + float speed = baseSpeed * Mathf.lerp(1f, unit.type.canBoost ? unit.type.boostMultiplier : 1f, unit.elevation) * strafePenalty; float xa = Core.input.axis(Binding.move_x); float ya = Core.input.axis(Binding.move_y); boolean boosted = (unit instanceof Mechc && unit.isFlying()); @@ -660,7 +660,7 @@ public class DesktopInput extends InputHandler{ } //update commander unit - if(Core.input.keyTap(Binding.command)){ + if(Core.input.keyTap(Binding.command) && unit.type.commandLimit > 0){ Call.unitCommand(player); } } diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java index 99103da3d7..c282feaba5 100644 --- a/core/src/mindustry/input/InputHandler.java +++ b/core/src/mindustry/input/InputHandler.java @@ -87,7 +87,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ to.addItem(item, removed); for(int j = 0; j < Mathf.clamp(removed / 3, 1, 8); j++){ - Time.run(j * 3f, () -> Call.transferItemEffect(item, build.x, build.y, to)); + Time.run(j * 3f, () -> transferItemEffect(item, build.x, build.y, to)); } } @@ -100,7 +100,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ @Remote(called = Loc.server, unreliable = true) public static void transferItemTo(Item item, int amount, float x, float y, Building build){ if(build == null || build.items == null) return; - for(int i = 0; i < Mathf.clamp(amount / 3, 1, 8); i++){ + for(int i = 0; i < Mathf.clamp(amount / 5, 1, 8); i++){ Time.run(i * 3, () -> createItemTransfer(item, amount, x, y, build, () -> {})); } build.items.add(item, amount); @@ -126,24 +126,47 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ @Remote(called = Loc.server, targets = Loc.both, forward = true) public static void requestItem(Player player, Building tile, Item item, int amount){ if(player == null || tile == null || !tile.interactable(player.team()) || !player.within(tile, buildingRange) || player.dead()) return; - amount = Math.min(player.unit().maxAccepted(item), amount); - int fa = amount; - - if(amount == 0) return; if(net.server() && (!Units.canInteract(player, tile) || !netServer.admins.allowAction(player, ActionType.withdrawItem, tile.tile(), action -> { action.item = item; - action.itemAmount = fa; + action.itemAmount = amount; }))) throw new ValidateException(player, "Player cannot request items."); - int removed = tile.removeStack(item, amount); + //remove item for every controlling unit + player.unit().eachGroup(unit -> { + Call.takeItems(tile, item, unit.maxAccepted(item), unit); - player.unit().addItem(item, removed); - Events.fire(new WithdrawEvent(tile, player, item, amount)); - for(int j = 0; j < Mathf.clamp(removed / 3, 1, 8); j++){ - Time.run(j * 3f, () -> Call.transferItemEffect(item, tile.x, tile.y, player.unit())); + if(unit == player.unit()){ + Events.fire(new WithdrawEvent(tile, player, item, amount)); + } + }); + } + + @Remote(targets = Loc.both, forward = true, called = Loc.server) + public static void transferInventory(Player player, Building tile){ + if(player == null || tile == null || !player.within(tile, buildingRange) || tile.items == null || player.dead()) return; + + if(net.server() && (player.unit().stack.amount <= 0 || !Units.canInteract(player, tile) || + !netServer.admins.allowAction(player, ActionType.depositItem, tile.tile, action -> { + action.itemAmount = player.unit().stack.amount; + action.item = player.unit().item(); + }))){ + throw new ValidateException(player, "Player cannot transfer an item."); } + + //deposit for every controlling unit + player.unit().eachGroup(unit -> { + Item item = unit.item(); + int accepted = tile.acceptStack(item, unit.stack.amount, unit); + unit.stack.amount -= accepted; + + Call.transferItemTo(item, accepted, unit.x, unit.y, tile); + + if(unit == player.unit()){ + Events.fire(new DepositEvent(tile, player, item, accepted)); + } + }); } @Remote(variants = Variant.one) @@ -276,37 +299,6 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ tile.noSleep(); } - @Remote(targets = Loc.both, forward = true, called = Loc.server) - public static void transferInventory(Player player, Building tile){ - if(player == null || tile == null || !player.within(tile, buildingRange) || tile.items == null || player.dead()) return; - - if(net.server() && (player.unit().stack.amount <= 0 || !Units.canInteract(player, tile) || - !netServer.admins.allowAction(player, ActionType.depositItem, tile.tile, action -> { - action.itemAmount = player.unit().stack.amount; - action.item = player.unit().item(); - }))){ - throw new ValidateException(player, "Player cannot transfer an item."); - } - - Item item = player.unit().item(); - int amount = player.unit().stack.amount; - int accepted = tile.acceptStack(item, amount, player.unit()); - player.unit().stack.amount -= accepted; - - Core.app.post(() -> Events.fire(new DepositEvent(tile, player, item, accepted))); - - tile.getStackOffset(item, stackTrns); - tile.handleStack(item, accepted, player.unit()); - - createItemTransfer( - item, - amount, - player.x + Angles.trnsx(player.unit().rotation + 180f, backTrns), player.y + Angles.trnsy(player.unit().rotation + 180f, backTrns), - new Vec2(tile.x + stackTrns.x, tile.y + stackTrns.y), - () -> {} - ); - } - @Remote(targets = Loc.both, called = Loc.both, forward = true) public static void tileConfig(@Nullable Player player, Building tile, @Nullable Object value){ if(tile == null) return; @@ -329,6 +321,11 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ public static void unitControl(Player player, @Nullable Unit unit){ if(player == null) return; + //make sure player is allowed to control the unit + if(net.server() && !netServer.admins.allowAction(player, ActionType.control, action -> action.unit = unit)){ + throw new ValidateException(player, "Player cannot control a unit."); + } + //clear player unit when they possess a core if((unit instanceof BlockUnitc && ((BlockUnitc)unit).tile() instanceof CoreBuild)){ Fx.spawn.at(player); @@ -369,6 +366,11 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ public static void unitCommand(Player player){ if(player == null || player.dead() || !(player.unit() instanceof Commanderc commander)) return; + //make sure player is allowed to make the command + if(net.server() && !netServer.admins.allowAction(player, ActionType.command, action -> {})){ + throw new ValidateException(player, "Player cannot command a unit."); + } + if(commander.isCommanding()){ commander.clearCommand(); }else if(player.unit().type.commandLimit > 0){ @@ -928,10 +930,11 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ boolean canMine(Tile tile){ return !Core.scene.hasMouse() - && tile.drop() != null && player.miner().canMine(tile.drop()) + && tile.drop() != null + && player.miner().validMine(tile) && !(tile.floor().playerUnmineable && tile.overlay().itemDrop == null) && player.unit().acceptsItem(tile.drop()) - && tile.block() == Blocks.air && player.dst(tile.worldx(), tile.worldy()) <= miningRange; + && tile.block() == Blocks.air; } /** Returns the tile at the specified MOUSE coordinates. */ @@ -1196,7 +1199,14 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ line.x = point.x; line.y = point.y; if(!overrideLineRotation || diagonal){ - line.rotation = next != null ? Tile.relativeTo(point.x, point.y, next.x, next.y) : baseRotation; + if(next != null){ + line.rotation = Tile.relativeTo(point.x, point.y, next.x, next.y); + }else if(block.conveyorPlacement && i > 0){ + Point2 prev = points.get(i - 1); + line.rotation = Tile.relativeTo(prev.x, prev.y, point.x, point.y); + }else{ + line.rotation = baseRotation; + } }else{ line.rotation = rotation; } diff --git a/core/src/mindustry/input/MobileInput.java b/core/src/mindustry/input/MobileInput.java index 981f55bd6f..5dfb9a7865 100644 --- a/core/src/mindustry/input/MobileInput.java +++ b/core/src/mindustry/input/MobileInput.java @@ -613,7 +613,7 @@ public class MobileInput extends InputHandler implements GestureListener{ //reset payload target payloadTarget = null; //apply command on double tap when own unit is tapped - if(Mathf.within(worldx, worldy, player.unit().x, player.unit().y, player.unit().hitSize * 0.6f + 8f)){ + if(!player.dead() && Mathf.within(worldx, worldy, player.unit().x, player.unit().y, player.unit().hitSize * 0.6f + 8f) && player.unit().type.commandLimit > 0){ Call.unitCommand(player); }else{ //control a unit/block @@ -865,7 +865,7 @@ public class MobileInput extends InputHandler implements GestureListener{ baseSpeed = unit.minFormationSpeed * 0.98f; } - float speed = baseSpeed * Mathf.lerp(1f, unit.isCommanding() ? 1f : type.canBoost ? type.boostMultiplier : 1f, unit.elevation) * strafePenalty; + float speed = baseSpeed * Mathf.lerp(1f, type.canBoost ? type.boostMultiplier : 1f, unit.elevation) * strafePenalty; float range = unit.hasWeapons() ? unit.range() : 0f; float bulletSpeed = unit.hasWeapons() ? type.weapons.first().bullet.speed : 0f; float mouseAngle = unit.angleTo(unit.aimX(), unit.aimY()); @@ -948,7 +948,9 @@ public class MobileInput extends InputHandler implements GestureListener{ } } - unit.aim(Tmp.v1.trns(unit.rotation, 1000f).add(unit)); + //when not shooting, aim at mouse cursor + //this may be a bad idea, aiming for a point far in front could work better, test it out + unit.aim(Core.input.mouseWorldX(), Core.input.mouseWorldY()); }else{ Vec2 intercept = Predict.intercept(unit, target, bulletSpeed); diff --git a/core/src/mindustry/io/MapIO.java b/core/src/mindustry/io/MapIO.java index f88ebf9a37..f964e2c933 100644 --- a/core/src/mindustry/io/MapIO.java +++ b/core/src/mindustry/io/MapIO.java @@ -80,7 +80,7 @@ public class MapIO{ @Override public void setBlock(Block type){ super.setBlock(type); - int c = colorFor(Blocks.air, block(), Blocks.air, team()); + int c = colorFor(block(), Blocks.air, Blocks.air, team()); if(c != black){ walls.draw(x, floors.getHeight() - 1 - y, c); floors.draw(x, floors.getHeight() - 1 - y + 1, shade); @@ -119,7 +119,7 @@ public class MapIO{ if(overlayID != 0){ floors.draw(x, floors.getHeight() - 1 - y, colorFor(Blocks.air, Blocks.air, content.block(overlayID), Team.derelict)); }else{ - floors.draw(x, floors.getHeight() - 1 - y, colorFor(content.block(floorID), Blocks.air, Blocks.air, Team.derelict)); + floors.draw(x, floors.getHeight() - 1 - y, colorFor(Blocks.air, content.block(floorID), Blocks.air, Team.derelict)); } if(content.block(overlayID) == Blocks.spawn){ map.spawns ++; @@ -141,17 +141,17 @@ public class MapIO{ for(int x = 0; x < pixmap.getWidth(); x++){ for(int y = 0; y < pixmap.getHeight(); y++){ Tile tile = tiles.getn(x, y); - pixmap.draw(x, pixmap.getHeight() - 1 - y, colorFor(tile.floor(), tile.block(), tile.overlay(), tile.team())); + pixmap.draw(x, pixmap.getHeight() - 1 - y, colorFor(tile.block(), tile.floor(), tile.overlay(), tile.team())); } } return pixmap; } - public static int colorFor(Block floor, Block wall, Block ore, Team team){ + public static int colorFor(Block wall, Block floor, Block overlay, Team team){ if(wall.synthetic()){ return team.color.rgba(); } - return (wall.solid ? wall.mapColor : ore == Blocks.air ? floor.mapColor : ore.mapColor).rgba(); + return (wall.solid ? wall.mapColor : !overlay.useColor ? floor.mapColor : overlay.mapColor).rgba(); } public static Pixmap writeImage(Tiles tiles){ diff --git a/core/src/mindustry/io/SaveVersion.java b/core/src/mindustry/io/SaveVersion.java index b76a5156e8..a1e26c9b57 100644 --- a/core/src/mindustry/io/SaveVersion.java +++ b/core/src/mindustry/io/SaveVersion.java @@ -72,7 +72,7 @@ public abstract class SaveVersion extends SaveFileReader{ public void writeMeta(DataOutput stream, StringMap tags) throws IOException{ //prepare campaign data for writing if(state.isCampaign()){ - state.secinfo.prepare(); + state.rules.sector.info.prepare(); state.rules.sector.saveInfo(); } @@ -110,11 +110,6 @@ public abstract class SaveVersion extends SaveFileReader{ if(state.rules.spawns.isEmpty()) state.rules.spawns = defaultWaves.get(); lastReadBuild = map.getInt("build", -1); - //load in sector info - if(state.rules.sector != null){ - state.secinfo = state.rules.sector.info; - } - if(!headless){ Tmp.v1.tryFromString(map.get("viewpos")); Core.camera.position.set(Tmp.v1); diff --git a/core/src/mindustry/io/legacy/LegacyIO.java b/core/src/mindustry/io/legacy/LegacyIO.java index 0bb84f3fc7..15cb756081 100644 --- a/core/src/mindustry/io/legacy/LegacyIO.java +++ b/core/src/mindustry/io/legacy/LegacyIO.java @@ -70,7 +70,7 @@ public class LegacyIO{ String name = stream.readUTF(); Content out = Vars.content.getByName(type, name); if(out instanceof UnlockableContent u){ - u.unlock(); + u.quietUnlock(); } } } diff --git a/core/src/mindustry/logic/LAccess.java b/core/src/mindustry/logic/LAccess.java index 0d678554d1..669e447a57 100644 --- a/core/src/mindustry/logic/LAccess.java +++ b/core/src/mindustry/logic/LAccess.java @@ -38,12 +38,15 @@ public enum LAccess{ //values with parameters are considered controllable enabled("to"), //"to" is standard for single parameter access shoot("x", "y", "shoot"), - shootp(true, "unit", "shoot") + shootp(true, "unit", "shoot"), + configure(true, 30, "to") ; public final String[] params; public final boolean isObj; + /** Tick cooldown between invocations. */ + public float cooldown = -1; public static final LAccess[] all = values(), @@ -59,4 +62,10 @@ public enum LAccess{ this.params = params; isObj = obj; } + + LAccess(boolean obj, float cooldown, String... params){ + this.params = params; + this.cooldown = cooldown; + isObj = obj; + } } diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index 6b4f9ced0a..e207ae99dc 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -15,6 +15,7 @@ import mindustry.game.Teams.*; import mindustry.gen.*; import mindustry.type.*; import mindustry.world.*; +import mindustry.world.blocks.logic.*; import mindustry.world.blocks.logic.LogicDisplay.*; import mindustry.world.blocks.logic.MemoryBlock.*; import mindustry.world.blocks.logic.MessageBlock.*; @@ -223,6 +224,7 @@ public class LExecutor{ this.outX = outX; this.outY = outY; this.outFound = outFound; + this.outBuild = outBuild; } public UnitLocateI(){ @@ -245,7 +247,7 @@ public class LExecutor{ switch(locate){ case ore -> { if(exec.obj(ore) instanceof Item item){ - res = indexer.findClosestOre(unit.x, unit.y, item); + res = indexer.findClosestOre(unit, item); } } case building -> { @@ -272,8 +274,9 @@ public class LExecutor{ cache.found = false; exec.setnum(outFound, 0); } - exec.setobj(outFound, res != null && res.build != null && res.build.team == exec.team ? res.build : null); + exec.setobj(outBuild, res != null && res.build != null && res.build.team == exec.team ? cache.build = res.build : null); }else{ + exec.setobj(outBuild, cache.build); exec.setbool(outFound, cache.found); exec.setnum(outX, cache.x); exec.setnum(outY, cache.y); @@ -284,20 +287,22 @@ public class LExecutor{ static class Cache{ float x, y; boolean found; + Building build; } } /** Controls the unit based on some parameters. */ public static class UnitControlI implements LInstruction{ public LUnitControl type = LUnitControl.move; - public int p1, p2, p3, p4; + public int p1, p2, p3, p4, p5; - public UnitControlI(LUnitControl type, int p1, int p2, int p3, int p4){ + public UnitControlI(LUnitControl type, int p1, int p2, int p3, int p4, int p5){ this.type = type; this.p1 = p1; this.p2 = p2; this.p3 = p3; this.p4 = p4; + this.p5 = p5; } public UnitControlI(){ @@ -435,10 +440,11 @@ public class LExecutor{ } ai.plan.set(x, y, rot, block); - ai.plan.config = null; + ai.plan.config = exec.obj(p5) instanceof Content c ? c : null; + + builder.clearBuilding(); if(ai.plan.tile() != null){ - builder.clearBuilding(); builder.updateBuilding(true); builder.addBuild(ai.plan); } @@ -461,9 +467,8 @@ public class LExecutor{ if(ai.itemTimer > 0) return; Building build = exec.building(p1); - int amount = exec.numi(p2); - int dropped = Math.min(unit.stack.amount, amount); - if(build != null && dropped > 0 && unit.within(build, logicItemTransferRange)){ + int dropped = Math.min(unit.stack.amount, exec.numi(p2)); + if(build != null && dropped > 0 && unit.within(build, logicItemTransferRange + build.block.size * tilesize/2f)){ int accepted = build.acceptStack(unit.item(), dropped, unit); if(accepted > 0){ Call.transferItemTo(unit, unit.item(), accepted, unit.x, unit.y, build); @@ -477,7 +482,7 @@ public class LExecutor{ Building build = exec.building(p1); int amount = exec.numi(p3); - if(build != null && exec.obj(p2) instanceof Item item && unit.within(build, logicItemTransferRange)){ + if(build != null && build.items != null && exec.obj(p2) instanceof Item item && unit.within(build, logicItemTransferRange + build.block.size * tilesize/2f)){ int taken = Math.min(build.items.get(item), Math.min(amount, unit.maxAccepted(item))); if(taken > 0){ @@ -497,6 +502,7 @@ public class LExecutor{ public int target; public LAccess type = LAccess.enabled; public int p1, p2, p3, p4; + public Interval timer = new Interval(1); public ControlI(LAccess type, int target, int p1, int p2, int p3, int p4){ this.type = type; @@ -512,7 +518,7 @@ public class LExecutor{ @Override public void run(LExecutor exec){ Object obj = exec.obj(target); - if(obj instanceof Building b && b.team == exec.team && exec.linkIds.contains(b.id)){ + if(obj instanceof Building b && b.team == exec.team && exec.linkIds.contains(b.id) && (type.cooldown <= 0 || timer.get(type.cooldown))){ if(type.isObj){ b.control(type, exec.obj(p1), exec.num(p2), exec.num(p3), exec.num(p4)); }else{ @@ -818,9 +824,15 @@ public class LExecutor{ //graphics on headless servers are useless. if(Vars.headless) return; + int num1 = exec.numi(p1); + + if(type == LogicDisplay.commandImage){ + num1 = exec.obj(p1) instanceof UnlockableContent u ? u.iconId : 0; + } + //add graphics calls, cap graphics buffer size if(exec.graphicsBuffer.size < maxGraphicsBuffer){ - exec.graphicsBuffer.add(DisplayCmd.get(type, exec.numi(x), exec.numi(y), exec.numi(p1), exec.numi(p2), exec.numi(p3), exec.numi(p4))); + exec.graphicsBuffer.add(DisplayCmd.get(type, exec.numi(x), exec.numi(y), num1, exec.numi(p2), exec.numi(p3), exec.numi(p4))); } } } @@ -871,10 +883,11 @@ public class LExecutor{ if(v.isobj && value != 0){ String strValue = v.objval == null ? "null" : - v.objval instanceof String ? (String)v.objval : + v.objval instanceof String s ? s : + v.objval instanceof MappableContent content ? content.name : v.objval instanceof Content ? "[content]" : - v.objval instanceof Building ? "[building]" : - v.objval instanceof Unit ? "[unit]" : + v.objval instanceof Building build ? build.block.name : + v.objval instanceof Unit unit ? unit.type.name : "[object]"; exec.textBuffer.append(strValue); diff --git a/core/src/mindustry/logic/LStatements.java b/core/src/mindustry/logic/LStatements.java index 57adbdb7fe..d2a1dfa111 100644 --- a/core/src/mindustry/logic/LStatements.java +++ b/core/src/mindustry/logic/LStatements.java @@ -143,6 +143,12 @@ public class LStatements{ if(type == GraphicsType.color){ p2 = "255"; } + + if(type == GraphicsType.image){ + p1 = "@copper"; + p2 = "32"; + p3 = "0"; + } rebuild(table); }, 2, cell -> cell.size(100, 50))); }, Styles.logict, () -> {}).size(90, 40).color(table.color).left().padLeft(2); @@ -205,6 +211,15 @@ public class LStatements{ fields(s, "x3", p3, v -> p3 = v); fields(s, "y3", p4, v -> p4 = v); } + case image -> { + fields(s, "x", x, v -> x = v); + fields(s, "y", y, v -> y = v); + row(s); + fields(s, "image", p1, v -> p1 = v); + fields(s, "size", p2, v -> p2 = v); + row(s); + fields(s, "rotation", p3, v -> p3 = v); + } } }).expand().left(); } @@ -704,7 +719,7 @@ public class LStatements{ @RegisterStatement("ubind") public static class UnitBindStatement extends LStatement{ - public String type = "@mono"; + public String type = "@poly"; @Override public void build(Table table){ @@ -748,7 +763,7 @@ public class LStatements{ @RegisterStatement("ucontrol") public static class UnitControlStatement extends LStatement{ public LUnitControl type = LUnitControl.move; - public String p1 = "0", p2 = "0", p3 = "0", p4 = "0"; + public String p1 = "0", p2 = "0", p3 = "0", p4 = "0", p5 = "0"; @Override public void build(Table table){ @@ -777,9 +792,13 @@ public class LStatements{ int c = 0; for(int i = 0; i < type.params.length; i++){ - fields(table, type.params[i], i == 0 ? p1 : i == 1 ? p2 : i == 2 ? p3 : p4, i == 0 ? v -> p1 = v : i == 1 ? v -> p2 = v : i == 2 ? v -> p3 = v : v -> p4 = v).width(110f); + fields(table, type.params[i], i == 0 ? p1 : i == 1 ? p2 : i == 2 ? p3 : i == 3 ? p4 : p5, i == 0 ? v -> p1 = v : i == 1 ? v -> p2 = v : i == 2 ? v -> p3 = v : i == 3 ? v -> p4 = v : v -> p5 = v).width(100f); if(++c % 2 == 0) row(table); + + if(i == 3){ + table.row(); + } } } @@ -790,7 +809,7 @@ public class LStatements{ @Override public LInstruction build(LAssembler builder){ - return new UnitControlI(type, builder.var(p1), builder.var(p2), builder.var(p3), builder.var(p4)); + return new UnitControlI(type, builder.var(p1), builder.var(p2), builder.var(p3), builder.var(p4), builder.var(p5)); } } @@ -861,7 +880,7 @@ public class LStatements{ table.table(ts -> { ts.color.set(table.color); - field(ts, ore, str -> ore = str); + fields(ts, ore, str -> ore = str); ts.button(b -> { b.image(Icon.pencilSmall); @@ -905,8 +924,10 @@ public class LStatements{ table.add(" found ").left(); fields(table, outFound, str -> outFound = str); - table.add(" building ").left(); - fields(table, outBuild, str -> outBuild = str); + if(locate != LLocate.ore){ + table.add(" building ").left(); + fields(table, outBuild, str -> outBuild = str); + } } diff --git a/core/src/mindustry/logic/LUnitControl.java b/core/src/mindustry/logic/LUnitControl.java index b4c7f8254c..41f00da025 100644 --- a/core/src/mindustry/logic/LUnitControl.java +++ b/core/src/mindustry/logic/LUnitControl.java @@ -14,7 +14,7 @@ public enum LUnitControl{ payTake("takeUnits"), mine("x", "y"), flag("value"), - build("x", "y", "block", "rotation"), + build("x", "y", "block", "rotation", "config"), getBlock("x", "y", "type", "building"), within("x", "y", "radius", "result"); diff --git a/core/src/mindustry/maps/Maps.java b/core/src/mindustry/maps/Maps.java index e6fcaff68a..9c79ab6cfe 100644 --- a/core/src/mindustry/maps/Maps.java +++ b/core/src/mindustry/maps/Maps.java @@ -29,7 +29,7 @@ import static mindustry.Vars.*; public class Maps{ /** List of all built-in maps. Filenames only. */ - private static String[] defaultMapNames = {"maze", "fortress", "labyrinth", "islands", "tendrils", "caldera", "wasteland", "shattered", "fork", "triad", "mudFlats", "veins", "glacier"}; + private static String[] defaultMapNames = {"maze", "fortress", "labyrinth", "islands", "tendrils", "caldera", "wasteland", "shattered", "fork", "triad", "mudFlats", "moltenLake", "archipelago", "debrisField", "veins", "glacier"}; /** Maps tagged as PvP */ static final String[] pvpMaps = {"veins", "glacier"}; /** All maps stored in an ordered array. */ diff --git a/core/src/mindustry/maps/SectorDamage.java b/core/src/mindustry/maps/SectorDamage.java index b084f75c10..5e1c36b539 100644 --- a/core/src/mindustry/maps/SectorDamage.java +++ b/core/src/mindustry/maps/SectorDamage.java @@ -27,8 +27,12 @@ public class SectorDamage{ /** @return calculated capture progress of the enemy */ public static float getDamage(SectorInfo info){ + return getDamage(info, info.wavesPassed); + } + + /** @return calculated capture progress of the enemy */ + public static float getDamage(SectorInfo info, int wavesPassed){ float health = info.sumHealth; - int wavesPassed = info.wavesPassed; int wave = info.wave; float waveSpace = info.waveSpacing; @@ -82,13 +86,13 @@ public class SectorDamage{ /** Applies wave damage based on sector parameters. */ public static void applyCalculatedDamage(){ //calculate base damage fraction - float damage = getDamage(state.secinfo); + float damage = getDamage(state.rules.sector.info); //scaled damage has a power component to make it seem a little more realistic (as systems fail, enemy capturing gets easier and easier) float scaled = Mathf.pow(damage, 1.5f); //apply damage to units - float unitDamage = damage * state.secinfo.sumHealth; + float unitDamage = damage * state.rules.sector.info.sumHealth; Tile spawn = spawner.getFirstSpawn(); //damage only units near the spawn point @@ -114,7 +118,7 @@ public class SectorDamage{ } } - if(state.secinfo.wavesPassed > 0){ + if(state.rules.sector.info.wavesPassed > 0){ //simply remove each block in the spawner range if a wave passed for(Tile spawner : spawner.getSpawns()){ spawner.circle((int)(state.rules.dropZoneRadius / tilesize), tile -> { @@ -207,7 +211,7 @@ public class SectorDamage{ //first, calculate the total health of blocks in the path //radius around the path that gets counted - int radius = 7; + int radius = 9; IntSet counted = new IntSet(); for(Tile t : sparse2){ @@ -265,7 +269,7 @@ public class SectorDamage{ sumHealth += unit.health*healthMult + unit.shield; sumDps += unit.type.dpsEstimate; - if(unit.abilities.find(a -> a instanceof HealFieldAbility) instanceof HealFieldAbility h){ + if(unit.abilities.find(a -> a instanceof RepairFieldAbility) instanceof RepairFieldAbility h){ sumRps += h.amount / h.reload * 60f; } }else{ diff --git a/core/src/mindustry/maps/filters/ClearFilter.java b/core/src/mindustry/maps/filters/ClearFilter.java index 3769d7f77d..4da2564a79 100644 --- a/core/src/mindustry/maps/filters/ClearFilter.java +++ b/core/src/mindustry/maps/filters/ClearFilter.java @@ -11,7 +11,7 @@ public class ClearFilter extends GenerateFilter{ @Override public FilterOption[] options(){ - return Structs.arr(new BlockOption("block", () -> block, b -> block = b, wallsOnly)); + return Structs.arr(new BlockOption("block", () -> block, b -> block = b, b -> oresOnly.get(b) || wallsOnly.get(b))); } @Override @@ -20,5 +20,9 @@ public class ClearFilter extends GenerateFilter{ if(in.block == block){ in.block = Blocks.air; } + + if(in.overlay == block){ + in.overlay = Blocks.air; + } } } diff --git a/core/src/mindustry/maps/filters/DistortFilter.java b/core/src/mindustry/maps/filters/DistortFilter.java index 32c8f18a14..daedca1765 100644 --- a/core/src/mindustry/maps/filters/DistortFilter.java +++ b/core/src/mindustry/maps/filters/DistortFilter.java @@ -26,6 +26,6 @@ public class DistortFilter extends GenerateFilter{ in.floor = tile.floor(); if(!tile.block().synthetic() && !in.block.synthetic()) in.block = tile.block(); - in.ore = tile.overlay(); + in.overlay = tile.overlay(); } } diff --git a/core/src/mindustry/maps/filters/FilterOption.java b/core/src/mindustry/maps/filters/FilterOption.java index dedebfe713..e7059f3032 100644 --- a/core/src/mindustry/maps/filters/FilterOption.java +++ b/core/src/mindustry/maps/filters/FilterOption.java @@ -20,9 +20,10 @@ public abstract class FilterOption{ public static final Boolf floorsOnly = b -> (b instanceof Floor && !(b instanceof OverlayFloor)) && !headless && Core.atlas.isFound(b.icon(Cicon.full)); public static final Boolf wallsOnly = b -> (!b.synthetic() && !(b instanceof Floor)) && !headless && Core.atlas.isFound(b.icon(Cicon.full)) && b.inEditor; public static final Boolf floorsOptional = b -> b == Blocks.air || ((b instanceof Floor && !(b instanceof OverlayFloor)) && !headless && Core.atlas.isFound(b.icon(Cicon.full))); - public static final Boolf wallsOptional = b -> b == Blocks.air || ((!b.synthetic() && !(b instanceof Floor)) && !headless && Core.atlas.isFound(b.icon(Cicon.full))); + public static final Boolf wallsOptional = b -> (b == Blocks.air || ((!b.synthetic() && !(b instanceof Floor)) && !headless && Core.atlas.isFound(b.icon(Cicon.full)))) && b.inEditor; public static final Boolf wallsOresOptional = b -> b == Blocks.air || (((!b.synthetic() && !(b instanceof Floor)) || (b instanceof OverlayFloor)) && !headless && Core.atlas.isFound(b.icon(Cicon.full))) && b.inEditor; - public static final Boolf oresOnly = b -> b instanceof OverlayFloor && !headless && Core.atlas.isFound(b.icon(mindustry.ui.Cicon.full)); + public static final Boolf oresOnly = b -> b instanceof OverlayFloor && !headless && Core.atlas.isFound(b.icon(Cicon.full)); + public static final Boolf oresFloorsOptional = b -> (b instanceof Floor) && !headless && Core.atlas.isFound(b.icon(Cicon.full)); public static final Boolf anyOptional = b -> (floorsOnly.get(b) || wallsOnly.get(b) || oresOnly.get(b) || b == Blocks.air) && b.inEditor; public abstract void build(Table table); diff --git a/core/src/mindustry/maps/filters/GenerateFilter.java b/core/src/mindustry/maps/filters/GenerateFilter.java index c884d5296e..6d7a00f3a9 100644 --- a/core/src/mindustry/maps/filters/GenerateFilter.java +++ b/core/src/mindustry/maps/filters/GenerateFilter.java @@ -5,7 +5,10 @@ import arc.math.*; import arc.scene.ui.*; import arc.util.*; import arc.util.noise.*; +import mindustry.*; +import mindustry.annotations.Annotations.*; import mindustry.content.*; +import mindustry.gen.*; import mindustry.world.*; public abstract class GenerateFilter{ @@ -15,15 +18,42 @@ public abstract class GenerateFilter{ public void apply(Tiles tiles, GenerateInput in){ this.in = in; - for(Tile tile : tiles){ - in.apply(tile.x, tile.y, tile.floor(), tile.block(), tile.overlay()); - apply(); - tile.setFloor(in.floor.asFloor()); - tile.setOverlay(!in.floor.asFloor().hasSurface() ? Blocks.air : in.ore); + if(isBuffered()){ + //buffer of tiles used, each tile packed into a long struct + long[] buffer = new long[tiles.width * tiles.height]; - if(!tile.block().synthetic() && !in.block.synthetic()){ - tile.setBlock(in.block); + //save to buffer + for(int i = 0; i < tiles.width * tiles.height; i++){ + Tile tile = tiles.geti(i); + buffer[i] = PackTile.get(tile.blockID(), tile.floorID(), tile.overlayID()); + } + + for(int i = 0; i < tiles.width * tiles.height; i++){ + Tile tile = tiles.geti(i); + long b = buffer[i]; + + in.apply(tile.x, tile.y, Vars.content.block(PackTile.block(b)), Vars.content.block(PackTile.floor(b)), Vars.content.block(PackTile.overlay(b))); + apply(); + + tile.setFloor(in.floor.asFloor()); + tile.setOverlay(!in.floor.asFloor().hasSurface() && in.overlay.asFloor().needsSurface ? Blocks.air : in.overlay); + + if(!tile.block().synthetic() && !in.block.synthetic()){ + tile.setBlock(in.block); + } + } + }else{ + for(Tile tile : tiles){ + in.apply(tile.x, tile.y, tile.block(), tile.floor(), tile.overlay()); + apply(); + + tile.setFloor(in.floor.asFloor()); + tile.setOverlay(!in.floor.asFloor().hasSurface() && in.overlay.asFloor().needsSurface ? Blocks.air : in.overlay); + + if(!tile.block().synthetic() && !in.block.synthetic()){ + tile.setBlock(in.block); + } } } } @@ -89,16 +119,16 @@ public abstract class GenerateFilter{ public int x, y, width, height; /** output parameters */ - public Block floor, block, ore; + public Block floor, block, overlay; Simplex noise = new Simplex(); RidgedPerlin pnoise = new RidgedPerlin(0, 1); TileProvider buffer; - public void apply(int x, int y, Block floor, Block block, Block ore){ + public void apply(int x, int y, Block block, Block floor, Block overlay){ this.floor = floor; this.block = block; - this.ore = ore; + this.overlay = overlay; this.x = x; this.y = y; } @@ -119,4 +149,9 @@ public abstract class GenerateFilter{ Tile get(int x, int y); } } + + @Struct + class PackTileStruct{ + short block, floor, overlay; + } } diff --git a/core/src/mindustry/maps/filters/MirrorFilter.java b/core/src/mindustry/maps/filters/MirrorFilter.java index 8d2e22bdbe..3ebdb45a71 100644 --- a/core/src/mindustry/maps/filters/MirrorFilter.java +++ b/core/src/mindustry/maps/filters/MirrorFilter.java @@ -39,7 +39,7 @@ public class MirrorFilter extends GenerateFilter{ if(!tile.block().synthetic()){ in.block = tile.block(); } - in.ore = tile.overlay(); + in.overlay = tile.overlay(); } } diff --git a/core/src/mindustry/maps/filters/NoiseFilter.java b/core/src/mindustry/maps/filters/NoiseFilter.java index 857be64369..63e98e3ad9 100644 --- a/core/src/mindustry/maps/filters/NoiseFilter.java +++ b/core/src/mindustry/maps/filters/NoiseFilter.java @@ -9,7 +9,7 @@ import static mindustry.maps.filters.FilterOption.*; public class NoiseFilter extends GenerateFilter{ float scl = 40, threshold = 0.5f, octaves = 3f, falloff = 0.5f; - Block floor = Blocks.stone, block = Blocks.stoneWall; + Block floor = Blocks.stone, block = Blocks.stoneWall, target = Blocks.air; @Override public FilterOption[] options(){ @@ -18,8 +18,9 @@ public class NoiseFilter extends GenerateFilter{ new SliderOption("threshold", () -> threshold, f -> threshold = f, 0f, 1f), new SliderOption("octaves", () -> octaves, f -> octaves = f, 1f, 10f), new SliderOption("falloff", () -> falloff, f -> falloff = f, 0f, 1f), - new BlockOption("floor", () -> floor, b -> floor = b, floorsOnly), - new BlockOption("wall", () -> block, b -> block = b, wallsOnly) + new BlockOption("target", () -> target, b -> target = b, anyOptional), + new BlockOption("floor", () -> floor, b -> floor = b, floorsOptional), + new BlockOption("wall", () -> block, b -> block = b, wallsOptional) ); } @@ -27,9 +28,9 @@ public class NoiseFilter extends GenerateFilter{ public void apply(){ float noise = noise(in.x, in.y, scl, 1f, octaves, falloff); - if(noise > threshold){ - in.floor = floor; - if(wallsOnly.get(in.block)) in.block = block; + if(noise > threshold && (target == Blocks.air || in.floor == target || in.block == target)){ + if(floor != Blocks.air) in.floor = floor; + if(block != Blocks.air && in.block != Blocks.air) in.block = block; } } } diff --git a/core/src/mindustry/maps/filters/OreFilter.java b/core/src/mindustry/maps/filters/OreFilter.java index 491bbf0123..7a2ff3ed38 100644 --- a/core/src/mindustry/maps/filters/OreFilter.java +++ b/core/src/mindustry/maps/filters/OreFilter.java @@ -9,7 +9,7 @@ import static mindustry.maps.filters.FilterOption.*; public class OreFilter extends GenerateFilter{ public float scl = 23, threshold = 0.81f, octaves = 2f, falloff = 0.3f; - public Block ore = Blocks.oreCopper; + public Block ore = Blocks.oreCopper, target = Blocks.air; @Override public FilterOption[] options(){ @@ -18,7 +18,8 @@ public class OreFilter extends GenerateFilter{ new SliderOption("threshold", () -> threshold, f -> threshold = f, 0f, 1f), new SliderOption("octaves", () -> octaves, f -> octaves = f, 1f, 10f), new SliderOption("falloff", () -> falloff, f -> falloff = f, 0f, 1f), - new BlockOption("ore", () -> ore, b -> ore = b, oresOnly) + new BlockOption("ore", () -> ore, b -> ore = b, oresOnly), + new BlockOption("target", () -> target, b -> target = b, oresFloorsOptional) ); } @@ -26,8 +27,8 @@ public class OreFilter extends GenerateFilter{ public void apply(){ float noise = noise(in.x, in.y, scl, 1f, octaves, falloff); - if(noise > threshold && in.ore != Blocks.spawn){ - in.ore = ore; + if(noise > threshold && in.overlay != Blocks.spawn && (target == Blocks.air || in.floor == target || in.overlay == target) && in.floor.asFloor().hasSurface()){ + in.overlay = ore; } } } diff --git a/core/src/mindustry/maps/filters/OreMedianFilter.java b/core/src/mindustry/maps/filters/OreMedianFilter.java index c9fd8d91c6..27a10548af 100644 --- a/core/src/mindustry/maps/filters/OreMedianFilter.java +++ b/core/src/mindustry/maps/filters/OreMedianFilter.java @@ -29,14 +29,14 @@ public class OreMedianFilter extends GenerateFilter{ @Override public void apply(){ - if(in.ore == Blocks.spawn) return; + if(in.overlay == Blocks.spawn) return; int cx = (in.x / 2) * 2; int cy = (in.y / 2) * 2; - if(in.ore != Blocks.air){ - if(!(in.tile(cx + 1, cy).overlay() == in.ore && in.tile(cx, cy).overlay() == in.ore && in.tile(cx + 1, cy + 1).overlay() == in.ore && in.tile(cx, cy + 1).overlay() == in.ore && + if(in.overlay != Blocks.air){ + if(!(in.tile(cx + 1, cy).overlay() == in.overlay && in.tile(cx, cy).overlay() == in.overlay && in.tile(cx + 1, cy + 1).overlay() == in.overlay && in.tile(cx, cy + 1).overlay() == in.overlay && !in.tile(cx + 1, cy).block().isStatic() && !in.tile(cx, cy).block().isStatic() && !in.tile(cx + 1, cy + 1).block().isStatic() && !in.tile(cx, cy + 1).block().isStatic())){ - in.ore = Blocks.air; + in.overlay = Blocks.air; } } @@ -58,6 +58,6 @@ public class OreMedianFilter extends GenerateFilter{ int index = Math.min((int)(blocks.size * percentile), blocks.size - 1); int overlay = blocks.get(index); - in.ore = Vars.content.block(overlay); + in.overlay = Vars.content.block(overlay); } } diff --git a/core/src/mindustry/maps/filters/ScatterFilter.java b/core/src/mindustry/maps/filters/ScatterFilter.java index 4b90275b1f..67d2b0229e 100644 --- a/core/src/mindustry/maps/filters/ScatterFilter.java +++ b/core/src/mindustry/maps/filters/ScatterFilter.java @@ -27,7 +27,7 @@ public class ScatterFilter extends GenerateFilter{ if(!block.isOverlay()){ in.block = block; }else{ - in.ore = block; + in.overlay = block; } } diff --git a/core/src/mindustry/maps/filters/SpawnPathFilter.java b/core/src/mindustry/maps/filters/SpawnPathFilter.java new file mode 100644 index 0000000000..8384024186 --- /dev/null +++ b/core/src/mindustry/maps/filters/SpawnPathFilter.java @@ -0,0 +1,64 @@ +package mindustry.maps.filters; + +import arc.math.*; +import arc.struct.*; +import arc.util.*; +import mindustry.*; +import mindustry.ai.*; +import mindustry.content.*; +import mindustry.maps.filters.FilterOption.*; +import mindustry.world.*; +import mindustry.world.blocks.storage.*; + +import static mindustry.Vars.*; + +/** Selects X spawns from the spawn pool.*/ +public class SpawnPathFilter extends GenerateFilter{ + int radius = 3; + + @Override + public FilterOption[] options(){ + return Structs.arr( + new SliderOption("radius", () -> radius, f -> radius = (int)f, 1, 20).display() + ); + } + + @Override + public void apply(Tiles tiles, GenerateInput in){ + Tile core = null; + var spawns = new Seq(); + + for(Tile tile : tiles){ + if(tile.overlay() == Blocks.spawn){ + spawns.add(tile); + } + if(tile.block() instanceof CoreBlock && tile.team() != Vars.state.rules.waveTeam){ + core = tile; + } + } + + if(core != null && spawns.any()){ + for(var spawn : spawns){ + var path = Astar.pathfind(core.x, core.y, spawn.x, spawn.y, t -> t.solid() ? 100 : 1, Astar.manhattan, tile -> !tile.floor().isDeep()); + for(var tile : path){ + for(int x = -radius; x <= radius; x++){ + for(int y = -radius; y <= radius; y++){ + int wx = tile.x + x, wy = tile.y + y; + if(Structs.inBounds(wx, wy, world.width(), world.height()) && Mathf.within(x, y, radius)){ + Tile other = tiles.getn(wx, wy); + if(!other.synthetic()){ + other.setBlock(Blocks.air); + } + } + } + } + } + } + } + } + + @Override + public boolean isPost(){ + return true; + } +} diff --git a/core/src/mindustry/maps/filters/TerrainFilter.java b/core/src/mindustry/maps/filters/TerrainFilter.java index cc0ba82b54..e5da12a52f 100644 --- a/core/src/mindustry/maps/filters/TerrainFilter.java +++ b/core/src/mindustry/maps/filters/TerrainFilter.java @@ -10,7 +10,7 @@ import static mindustry.maps.filters.FilterOption.*; public class TerrainFilter extends GenerateFilter{ float scl = 40, threshold = 0.9f, octaves = 3f, falloff = 0.5f, magnitude = 1f, circleScl = 2.1f; - Block floor = Blocks.stone, block = Blocks.stoneWall; + Block floor = Blocks.air, block = Blocks.stoneWall; @Override public FilterOption[] options(){ @@ -21,7 +21,7 @@ public class TerrainFilter extends GenerateFilter{ new SliderOption("circle-scale", () -> circleScl, f -> circleScl = f, 0f, 3f), new SliderOption("octaves", () -> octaves, f -> octaves = f, 1f, 10f), new SliderOption("falloff", () -> falloff, f -> falloff = f, 0f, 1f), - new BlockOption("floor", () -> floor, b -> floor = b, floorsOnly), + new BlockOption("floor", () -> floor, b -> floor = b, floorsOptional), new BlockOption("wall", () -> block, b -> block = b, wallsOnly) ); } @@ -30,13 +30,12 @@ public class TerrainFilter extends GenerateFilter{ public void apply(){ float noise = noise(in.x, in.y, scl, magnitude, octaves, falloff) + Mathf.dst((float)in.x / in.width, (float)in.y / in.height, 0.5f, 0.5f) * circleScl; - in.floor = floor; - in.ore = Blocks.air; + if(floor != Blocks.air){ + in.floor = floor; + } if(noise >= threshold){ in.block = block; - }else{ - in.block = Blocks.air; } } } diff --git a/core/src/mindustry/maps/generators/BasicGenerator.java b/core/src/mindustry/maps/generators/BasicGenerator.java index e20350e6d3..1ef6d31297 100644 --- a/core/src/mindustry/maps/generators/BasicGenerator.java +++ b/core/src/mindustry/maps/generators/BasicGenerator.java @@ -248,7 +248,7 @@ public abstract class BasicGenerator implements WorldGenerator{ for(int x = -rad; x <= rad; x++){ for(int y = -rad; y <= rad; y++){ int wx = cx + x, wy = cy + y; - if(Structs.inBounds(wx, wy, width, height) && Mathf.dst(x, y, 0, 0) <= rad){ + if(Structs.inBounds(wx, wy, width, height) && Mathf.within(x, y, rad)){ Tile other = tiles.getn(wx, wy); other.setBlock(Blocks.air); } diff --git a/core/src/mindustry/maps/generators/FileMapGenerator.java b/core/src/mindustry/maps/generators/FileMapGenerator.java index dab00370ed..ebebd03877 100644 --- a/core/src/mindustry/maps/generators/FileMapGenerator.java +++ b/core/src/mindustry/maps/generators/FileMapGenerator.java @@ -14,9 +14,11 @@ import static mindustry.Vars.*; public class FileMapGenerator implements WorldGenerator{ public final Map map; + public final SectorPreset preset; - public FileMapGenerator(String mapName){ + public FileMapGenerator(String mapName, SectorPreset preset){ this.map = maps != null ? maps.loadInternalMap(mapName) : null; + this.preset = preset; } @Override @@ -56,6 +58,10 @@ public class FileMapGenerator implements WorldGenerator{ if(tile.isCenter() && tile.block() instanceof CoreBlock && tile.team() == state.rules.defaultTeam && !anyCores){ Schematics.placeLaunchLoadout(tile.x, tile.y); anyCores = true; + + if(preset.addStartingItems){ + tile.build.items.add(state.rules.loadout); + } } } diff --git a/core/src/mindustry/maps/generators/PlanetGenerator.java b/core/src/mindustry/maps/generators/PlanetGenerator.java index 2f0bd37058..4b5884014b 100644 --- a/core/src/mindustry/maps/generators/PlanetGenerator.java +++ b/core/src/mindustry/maps/generators/PlanetGenerator.java @@ -25,6 +25,11 @@ public abstract class PlanetGenerator extends BasicGenerator implements HexMeshe if(noise < 0.15){ for(Ptile other : tile.tiles){ + //no sectors near start sector! + if(sector.planet.getSector(other).id == sector.planet.startSector){ + return; + } + if(sector.planet.getSector(other).generateEnemyBase){ any = false; break; diff --git a/core/src/mindustry/maps/planet/SerpuloPlanetGenerator.java b/core/src/mindustry/maps/planet/SerpuloPlanetGenerator.java index 7e2b5e9aaa..4c7bd49a4e 100644 --- a/core/src/mindustry/maps/planet/SerpuloPlanetGenerator.java +++ b/core/src/mindustry/maps/planet/SerpuloPlanetGenerator.java @@ -277,7 +277,7 @@ public class SerpuloPlanetGenerator extends PlanetGenerator{ //hotrock tweaks if(floor == Blocks.hotrock){ - if(rand.chance(0.3)){ + if(Math.abs(0.5f - noise(x - 90, y, 4, 0.8, 80)) > 0.035){ floor = Blocks.basalt; }else{ ore = Blocks.air; diff --git a/core/src/mindustry/mod/ContentParser.java b/core/src/mindustry/mod/ContentParser.java index 0d88d01034..4fdf9a34b0 100644 --- a/core/src/mindustry/mod/ContentParser.java +++ b/core/src/mindustry/mod/ContentParser.java @@ -569,7 +569,9 @@ public class ContentParser{ if(field.field.getType().isPrimitive()) return; if(!field.field.isAnnotationPresent(Nullable.class) && field.field.get(object) == null && !implicitNullable.contains(field.field.getType())){ - throw new RuntimeException("'" + field.field.getName() + "' in " + object.getClass().getSimpleName() + " is missing!"); + throw new RuntimeException("'" + field.field.getName() + "' in " + + ((object.getClass().isAnonymousClass() ? object.getClass().getSuperclass() : object.getClass()).getSimpleName()) + + " is missing! Object = " + object + ", field = (" + field.field.getName() + " = " + field.field.get(object) + ")"); } }catch(Exception e){ throw new RuntimeException(e); diff --git a/core/src/mindustry/mod/Scripts.java b/core/src/mindustry/mod/Scripts.java index f372586863..bd7a73a34a 100644 --- a/core/src/mindustry/mod/Scripts.java +++ b/core/src/mindustry/mod/Scripts.java @@ -22,7 +22,7 @@ public class Scripts implements Disposable{ private final Seq blacklist = Seq.with(".net.", "java.net", "files", "reflect", "javax", "rhino", "file", "channels", "jdk", "runtime", "util.os", "rmi", "security", "org.", "sun.", "beans", "sql", "http", "exec", "compiler", "process", "system", ".awt", "socket", "classloader", "oracle", "invoke", "java.util.function", "java.util.stream", "org."); - private final Seq whitelist = Seq.with("mindustry.net", "netserver", "netclient", "com.sun.proxy.$proxy", "mindustry.gen.", "mindustry.logic.", "mindustry.async.", "saveio"); + private final Seq whitelist = Seq.with("mindustry.net", "netserver", "netclient", "com.sun.proxy.$proxy", "mindustry.gen.", "mindustry.logic.", "mindustry.async.", "saveio", "systemcursor"); private final Context context; private final Scriptable scope; private boolean errored; diff --git a/core/src/mindustry/net/Administration.java b/core/src/mindustry/net/Administration.java index ccf5f76755..32356ff838 100644 --- a/core/src/mindustry/net/Administration.java +++ b/core/src/mindustry/net/Administration.java @@ -142,11 +142,18 @@ public class Administration{ /** @return whether this action is allowed by the action filters. */ public boolean allowAction(Player player, ActionType type, Tile tile, Cons setter){ + return allowAction(player, type, action -> setter.get(action.set(player, type, tile))); + } + + /** @return whether this action is allowed by the action filters. */ + public boolean allowAction(Player player, ActionType type, Cons setter){ //some actions are done by the server (null player) and thus are always allowed if(player == null) return true; PlayerAction act = Pools.obtain(PlayerAction.class, PlayerAction::new); - setter.get(act.set(player, type, tile)); + act.player = player; + act.type = type; + setter.get(act); for(ActionFilter filter : actionFilters){ if(!filter.allow(act)){ Pools.free(act); @@ -699,7 +706,7 @@ public class Administration{ public static class PlayerAction implements Poolable{ public Player player; public ActionType type; - public Tile tile; + public @Nullable Tile tile; /** valid for block placement events only */ public @Nullable Block block; @@ -712,6 +719,9 @@ public class Administration{ public @Nullable Item item; public int itemAmount; + /** valid for unit-type events only, and even in that case may be null. */ + public @Nullable Unit unit; + public PlayerAction set(Player player, ActionType type, Tile tile){ this.player = player; this.type = type; @@ -719,6 +729,13 @@ public class Administration{ return this; } + public PlayerAction set(Player player, ActionType type, Unit unit){ + this.player = player; + this.type = type; + this.unit = unit; + return this; + } + @Override public void reset(){ item = null; @@ -728,11 +745,12 @@ public class Administration{ type = null; tile = null; block = null; + unit = null; } } public enum ActionType{ - breakBlock, placeBlock, rotate, configure, withdrawItem, depositItem + breakBlock, placeBlock, rotate, configure, withdrawItem, depositItem, control, command } } diff --git a/core/src/mindustry/type/Sector.java b/core/src/mindustry/type/Sector.java index 975c8b82c8..d9d54ba91c 100644 --- a/core/src/mindustry/type/Sector.java +++ b/core/src/mindustry/type/Sector.java @@ -15,8 +15,7 @@ import static mindustry.Vars.*; /** A small section of a planet. */ public class Sector{ - private static final Seq tmpSeq1 = new Seq<>(), tmpSeq2 = new Seq<>(), tmpSeq3 = new Seq<>(); - private static final ObjectSet tmpSet = new ObjectSet<>(); + private static final Seq tmpSeq1 = new Seq<>(); public final SectorRect rect; public final Plane plane; @@ -80,6 +79,12 @@ public class Sector{ info = Core.settings.getJson(planet.name + "-s-" + id + "-info", SectorInfo.class, SectorInfo::new); } + /** Removes any sector info. */ + public void clearInfo(){ + info = new SectorInfo(); + Core.settings.remove(planet.name + "-s-" + id + "-info"); + } + public float getProductionScale(){ return Math.max(1f - info.damage, 0); } diff --git a/core/src/mindustry/type/SectorPreset.java b/core/src/mindustry/type/SectorPreset.java index 0e9b90fb30..05574610fd 100644 --- a/core/src/mindustry/type/SectorPreset.java +++ b/core/src/mindustry/type/SectorPreset.java @@ -17,10 +17,11 @@ public class SectorPreset extends UnlockableContent{ public Cons rules = rules -> rules.winWave = captureWave; /** Difficulty, 0-10. */ public float difficulty; + public boolean addStartingItems = false; public SectorPreset(String name, Planet planet, int sector){ super(name); - this.generator = new FileMapGenerator(name); + this.generator = new FileMapGenerator(name, this); this.planet = planet; sector %= planet.sectors.size; this.sector = planet.sectors.get(sector); diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index 43d5f05bd9..2c425c0223 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -171,6 +171,8 @@ public class UnitType extends UnlockableContent{ if(unit.controller() instanceof LogicAI){ table.row(); table.add(Blocks.microProcessor.emoji() + " " + Core.bundle.get("units.processorcontrol")).growX().left(); + table.row(); + table.label(() -> Iconc.settings + " " + (long)unit.flag + "").color(Color.lightGray).growX().wrap().left(); } table.row(); @@ -197,15 +199,37 @@ public class UnitType extends UnlockableContent{ stats.add(Stat.health, health); stats.add(Stat.speed, speed); - stats.add(Stat.itemCapacity, health); + stats.add(Stat.itemCapacity, itemCapacity); stats.add(Stat.range, (int)(maxRange / tilesize), StatUnit.blocks); + stats.add(Stat.commandLimit, commandLimit); //TODO abilities, maybe try something like DPS + if(abilities.any()){ + var unique = new ObjectSet(); + + for(Ability a : abilities){ + if(unique.add(a.localized())){ + stats.add(Stat.abilities, a.localized()); + } + } + } + + stats.add(Stat.flying, flying); + + if(!flying){ + stats.add(Stat.canBoost, canBoost); + } + if(inst instanceof Minerc && mineTier >= 1){ stats.addPercent(Stat.mineSpeed, mineSpeed); stats.add(Stat.mineTier, new BlockFilterValue(b -> b instanceof Floor f && f.itemDrop != null && f.itemDrop.hardness <= mineTier && !f.playerUnmineable)); } - if(inst instanceof Builderc) stats.addPercent(Stat.buildSpeed, buildSpeed); + if(inst instanceof Builderc){ + stats.addPercent(Stat.buildSpeed, buildSpeed); + } + if(inst instanceof Payloadc){ + stats.add(Stat.payloadCapacity, (payloadCapacity / (tilesize * tilesize)), StatUnit.blocksSquared); + } } @CallSuper @@ -231,10 +255,17 @@ public class UnitType extends UnlockableContent{ //set up default range if(range < 0){ range = Float.MAX_VALUE; - maxRange = 0f; for(Weapon weapon : weapons){ - range = Math.min(range, weapon.bullet.range() + hitSize /2f); - maxRange = Math.max(maxRange, weapon.bullet.range() + hitSize /2f); + range = Math.min(range, weapon.bullet.range() + hitSize / 2f); + maxRange = Math.max(maxRange, weapon.bullet.range() + hitSize / 2f); + } + } + + if(maxRange < 0){ + maxRange = 0f; + + for(Weapon weapon : weapons){ + maxRange = Math.max(maxRange, weapon.bullet.range() + hitSize / 2f); } } diff --git a/core/src/mindustry/type/Weapon.java b/core/src/mindustry/type/Weapon.java index 2038374ad5..d2b5a3bb8e 100644 --- a/core/src/mindustry/type/Weapon.java +++ b/core/src/mindustry/type/Weapon.java @@ -50,7 +50,7 @@ public class Weapon{ public float x = 5f, y = 0f; /** random spread on the X axis */ public float xRand = 0f; - /** radius of occlusion drawn under the weapon; <0 to diable */ + /** radius of occlusion drawn under the weapon; <0 to disable */ public float occlusion = -1f; /** fraction of velocity that is random */ public float velocityRnd = 0f; diff --git a/core/src/mindustry/type/weather/ParticleWeather.java b/core/src/mindustry/type/weather/ParticleWeather.java index 060e9cbe62..b8e5b6e8ba 100644 --- a/core/src/mindustry/type/weather/ParticleWeather.java +++ b/core/src/mindustry/type/weather/ParticleWeather.java @@ -34,7 +34,7 @@ public class ParticleWeather extends Weather{ //load noise texture //TODO mod support - if(drawNoise){ + if(drawNoise && Core.assets != null){ Core.assets.load("sprites/" + noisePath + ".png", Texture.class); } } @@ -74,7 +74,7 @@ public class ParticleWeather extends Weather{ float sspeed = 1f, sscl = 1f, salpha = 1f, offset = 0f; Color col = Tmp.c1.set(noiseColor); for(int i = 0; i < noiseLayers; i++){ - drawNoise(noise, noiseColor, noiseScale * sscl, state.opacity * salpha * opacityMultiplier, baseSpeed * sspeed, state.intensity, windx, windy, offset); + drawNoise(noise, noiseColor, noiseScale * sscl, state.opacity * salpha * opacityMultiplier, sspeed * (useWindVector ? 1f : baseSpeed), state.intensity, windx, windy, offset); sspeed *= noiseLayerSpeedM; salpha *= noiseLayerAlphaM; sscl *= noiseLayerSclM; diff --git a/core/src/mindustry/ui/Fonts.java b/core/src/mindustry/ui/Fonts.java index cbc0100943..c2dec0cc01 100644 --- a/core/src/mindustry/ui/Fonts.java +++ b/core/src/mindustry/ui/Fonts.java @@ -22,7 +22,9 @@ import arc.scene.style.*; import arc.scene.ui.layout.*; import arc.struct.*; import arc.util.*; +import mindustry.*; import mindustry.core.*; +import mindustry.ctype.*; import java.util.*; @@ -30,6 +32,8 @@ public class Fonts{ private static final String mainFont = "fonts/font.woff"; private static ObjectIntMap unicodeIcons = new ObjectIntMap<>(); private static ObjectMap stringIcons = new ObjectMap<>(); + private static TextureRegion[] iconTable; + private static int lastCid; public static Font def; public static Font outline; @@ -37,6 +41,10 @@ public class Fonts{ public static Font icon; public static Font tech; + public static TextureRegion logicIcon(int id){ + return iconTable[id]; + } + public static int getUnicode(String content){ return unicodeIcons.get(content, 0); } @@ -111,6 +119,19 @@ public class Fonts{ fonts.each(f -> f.getData().setGlyph(ch, glyph)); } } + + iconTable = new TextureRegion[512]; + iconTable[0] = Core.atlas.find("error"); + lastCid = 1; + + Vars.content.each(c -> { + if(c instanceof UnlockableContent u){ + TextureRegion region = Core.atlas.find(u.name + "-icon-logic"); + if(region.found()){ + iconTable[u.iconId = lastCid++] = region; + } + } + }); } /** Called from a static context for use in the loading screen.*/ diff --git a/core/src/mindustry/ui/dialogs/BaseDialog.java b/core/src/mindustry/ui/dialogs/BaseDialog.java index b180763f86..b99b164ca4 100644 --- a/core/src/mindustry/ui/dialogs/BaseDialog.java +++ b/core/src/mindustry/ui/dialogs/BaseDialog.java @@ -1,7 +1,6 @@ package mindustry.ui.dialogs; import arc.*; -import arc.input.*; import arc.scene.ui.*; import arc.util.*; import mindustry.core.GameState.*; @@ -53,15 +52,15 @@ public class BaseDialog extends Dialog{ }); } + public void addCloseListener(){ + closeOnBack(); + } + @Override public void addCloseButton(){ buttons.defaults().size(210f, 64f); buttons.button("@back", Icon.left, this::hide).size(210f, 64f); - keyDown(key -> { - if(key == KeyCode.escape || key == KeyCode.back){ - Core.app.post(this::hide); - } - }); + addCloseListener(); } } diff --git a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java index 42fac7be72..4d6a4483f9 100644 --- a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java @@ -134,7 +134,7 @@ public class CustomRulesDialog extends BaseDialog{ check("@rules.waves", b -> rules.waves = b, () -> rules.waves); check("@rules.wavetimer", b -> rules.waveTimer = b, () -> rules.waveTimer); check("@rules.waitForWaveToEnd", b -> rules.waitEnemies = b, () -> rules.waitEnemies); - number("@rules.wavespacing", false, f -> rules.waveSpacing = f * 60f, () -> rules.waveSpacing / 60f, () -> true); + number("@rules.wavespacing", false, f -> rules.waveSpacing = f * 60f, () -> rules.waveSpacing / 60f, () -> true, 1, Float.MAX_VALUE); number("@rules.dropzoneradius", false, f -> rules.dropZoneRadius = f * tilesize, () -> rules.dropZoneRadius / tilesize, () -> true); title("@rules.title.resourcesbuilding"); @@ -142,7 +142,7 @@ public class CustomRulesDialog extends BaseDialog{ check("@rules.reactorexplosions", b -> rules.reactorExplosions = b, () -> rules.reactorExplosions); check("@rules.schematic", b-> rules.schematicsAllowed = b, () -> rules.schematicsAllowed); number("@rules.buildcostmultiplier", false, f -> rules.buildCostMultiplier = f, () -> rules.buildCostMultiplier, () -> !rules.infiniteResources); - number("@rules.buildspeedmultiplier", f -> rules.buildSpeedMultiplier = f, () -> rules.buildSpeedMultiplier); + number("@rules.buildspeedmultiplier", f -> rules.buildSpeedMultiplier = f, () -> rules.buildSpeedMultiplier, 0.00001f, 10000f); number("@rules.deconstructrefundmultiplier", false, f -> rules.deconstructRefundMultiplier = f, () -> rules.deconstructRefundMultiplier, () -> !rules.infiniteResources); number("@rules.blockhealthmultiplier", f -> rules.blockHealthMultiplier = f, () -> rules.blockHealthMultiplier); number("@rules.blockdamagemultiplier", f -> rules.blockDamageMultiplier = f, () -> rules.blockDamageMultiplier); @@ -162,7 +162,7 @@ public class CustomRulesDialog extends BaseDialog{ check("@rules.unitammo", b -> rules.unitAmmo = b, () -> rules.unitAmmo); number("@rules.unithealthmultiplier", f -> rules.unitHealthMultiplier = f, () -> rules.unitHealthMultiplier); number("@rules.unitdamagemultiplier", f -> rules.unitDamageMultiplier = f, () -> rules.unitDamageMultiplier); - number("@rules.unitbuildspeedmultiplier", f -> rules.unitBuildSpeedMultiplier = f, () -> rules.unitBuildSpeedMultiplier); + number("@rules.unitbuildspeedmultiplier", f -> rules.unitBuildSpeedMultiplier = f, () -> rules.unitBuildSpeedMultiplier, 0.00001f, 100f); title("@rules.title.enemy"); check("@rules.attack", b -> rules.attackMode = b, () -> rules.attackMode); @@ -189,10 +189,22 @@ public class CustomRulesDialog extends BaseDialog{ } void number(String text, Floatc cons, Floatp prov){ - number(text, false, cons, prov, () -> true); + number(text, false, cons, prov, () -> true, 0, Float.MAX_VALUE); + } + + void number(String text, Floatc cons, Floatp prov, float min, float max){ + number(text, false, cons, prov, () -> true, min, max); } void number(String text, boolean integer, Floatc cons, Floatp prov, Boolp condition){ + number(text, integer, cons, prov, condition, 0, Float.MAX_VALUE); + } + + void number(String text, Floatc cons, Floatp prov, Boolp condition){ + number(text, false, cons, prov, condition, 0, Float.MAX_VALUE); + } + + void number(String text, boolean integer, Floatc cons, Floatp prov, Boolp condition, float min, float max){ main.table(t -> { t.left(); t.add(text).left().padRight(5) @@ -200,7 +212,7 @@ public class CustomRulesDialog extends BaseDialog{ t.field((integer ? (int)prov.get() : prov.get()) + "", s -> cons.get(Strings.parseFloat(s))) .padRight(100f) .update(a -> a.setDisabled(!condition.get())) - .valid(Strings::canParsePositiveFloat).width(120f).left().addInputDialog(); + .valid(f -> Strings.canParsePositiveFloat(f) && Strings.parseFloat(f) >= min && Strings.parseFloat(f) <= max).width(120f).left().addInputDialog(); }).padTop(0); main.row(); } diff --git a/core/src/mindustry/ui/dialogs/FileChooser.java b/core/src/mindustry/ui/dialogs/FileChooser.java index 2c8f2954b9..c755585b12 100644 --- a/core/src/mindustry/ui/dialogs/FileChooser.java +++ b/core/src/mindustry/ui/dialogs/FileChooser.java @@ -4,6 +4,7 @@ import arc.*; import arc.files.*; import arc.func.*; import arc.graphics.g2d.*; +import arc.input.*; import arc.scene.event.*; import arc.scene.ui.*; import arc.scene.ui.layout.*; @@ -45,6 +46,12 @@ public class FileChooser extends BaseDialog{ cont.clear(); setupWidgets(); }); + + keyDown(KeyCode.enter, () -> { + ok.fireClick(); + }); + + addCloseListener(); } private void setupWidgets(){ diff --git a/core/src/mindustry/ui/dialogs/LaunchLoadoutDialog.java b/core/src/mindustry/ui/dialogs/LaunchLoadoutDialog.java index 62db818bf7..6a90ce322f 100644 --- a/core/src/mindustry/ui/dialogs/LaunchLoadoutDialog.java +++ b/core/src/mindustry/ui/dialogs/LaunchLoadoutDialog.java @@ -2,7 +2,6 @@ package mindustry.ui.dialogs; import arc.*; import arc.func.*; -import arc.input.*; import arc.scene.ui.*; import arc.scene.ui.layout.*; import arc.struct.*; @@ -37,11 +36,7 @@ public class LaunchLoadoutDialog extends BaseDialog{ buttons.defaults().size(160f, 64f); buttons.button("@back", Icon.left, this::hide); - keyDown(key -> { - if(key == KeyCode.escape || key == KeyCode.back){ - Core.app.post(this::hide); - } - }); + addCloseListener(); ItemSeq sitems = sector.getItems(); @@ -104,22 +99,30 @@ public class LaunchLoadoutDialog extends BaseDialog{ cont.pane(t -> { int i = 0; - for(Schematic s : schematics.getLoadouts(core)){ + for(var entry : schematics.getLoadouts()){ + if(entry.key.size <= core.size){ + for(Schematic s : entry.value){ - t.button(b -> b.add(new SchematicImage(s)), Styles.togglet, () -> { - selected = s; - update.run(); - rebuildItems.run(); - }).group(group).pad(4).disabled(!sitems.has(s.requirements())).checked(s == selected).size(200f); + t.button(b -> b.add(new SchematicImage(s)), Styles.togglet, () -> { + selected = s; + update.run(); + rebuildItems.run(); + }).group(group).pad(4).disabled(!sitems.has(s.requirements())).checked(s == selected).size(200f); - if(++i % cols == 0){ - t.row(); + if(++i % cols == 0){ + t.row(); + } + } } } + + }).growX().get().setScrollingDisabled(true, false); cont.row(); cont.add(items); + cont.row(); + cont.add("@sector.missingresources").visible(() -> !valid); update.run(); rebuildItems.run(); diff --git a/core/src/mindustry/ui/dialogs/MapsDialog.java b/core/src/mindustry/ui/dialogs/MapsDialog.java index c03c01e799..790f036efa 100644 --- a/core/src/mindustry/ui/dialogs/MapsDialog.java +++ b/core/src/mindustry/ui/dialogs/MapsDialog.java @@ -2,7 +2,6 @@ package mindustry.ui.dialogs; import arc.*; import arc.graphics.*; -import arc.input.*; import arc.scene.ui.*; import arc.scene.ui.layout.*; import arc.util.*; @@ -24,11 +23,7 @@ public class MapsDialog extends BaseDialog{ buttons.remove(); - keyDown(key -> { - if(key == KeyCode.escape || key == KeyCode.back){ - Core.app.post(this::hide); - } - }); + addCloseListener(); shown(this::setup); onResize(() -> { diff --git a/core/src/mindustry/ui/dialogs/PaletteDialog.java b/core/src/mindustry/ui/dialogs/PaletteDialog.java index 6453a2284e..6a6a666226 100644 --- a/core/src/mindustry/ui/dialogs/PaletteDialog.java +++ b/core/src/mindustry/ui/dialogs/PaletteDialog.java @@ -38,8 +38,7 @@ public class PaletteDialog extends Dialog{ } keyDown(key -> { - if(key == KeyCode.escape || key == KeyCode.back) - hide(); + if(key == KeyCode.escape || key == KeyCode.back) hide(); }); } diff --git a/core/src/mindustry/ui/dialogs/PausedDialog.java b/core/src/mindustry/ui/dialogs/PausedDialog.java index fce68f3044..a1feb73457 100644 --- a/core/src/mindustry/ui/dialogs/PausedDialog.java +++ b/core/src/mindustry/ui/dialogs/PausedDialog.java @@ -1,7 +1,6 @@ package mindustry.ui.dialogs; import arc.*; -import arc.input.*; import mindustry.gen.*; import static mindustry.Vars.*; @@ -17,11 +16,7 @@ public class PausedDialog extends BaseDialog{ shown(this::rebuild); - keyDown(key -> { - if(key == KeyCode.escape || key == KeyCode.back){ - hide(); - } - }); + addCloseListener(); } void rebuild(){ diff --git a/core/src/mindustry/ui/dialogs/PlanetDialog.java b/core/src/mindustry/ui/dialogs/PlanetDialog.java index d14314977b..07c3875140 100644 --- a/core/src/mindustry/ui/dialogs/PlanetDialog.java +++ b/core/src/mindustry/ui/dialogs/PlanetDialog.java @@ -49,14 +49,12 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ shouldPause = true; - getCell(buttons).padBottom(-4); - buttons.background(Styles.black).defaults().growX().height(64f).pad(0); + addCloseListener(); - keyDown(key -> { - if(key == KeyCode.escape || key == KeyCode.back){ - Core.app.post(this::hide); - } - }); + buttons.defaults().size(200f, 56f).pad(2); + buttons.button("@back", Icon.left, this::hide); + buttons.button("@techtree", Icon.tree, () -> ui.research.show()); + buttons.bottom().margin(0).marginBottom(-8); dragged((cx, cy) -> { Vec3 pos = planets.camPos; @@ -128,7 +126,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ boolean canSelect(Sector sector){ if(mode == select) return sector.hasBase(); - return sector.near().contains(Sector::hasBase)//(sector.tile.v.within(launchSector.tile.v, (launchRange + 0.5f) * planets.planet.sectorApproxRadius*2) //within range + return sector.hasBase() || sector.near().contains(Sector::hasBase) //near an occupied sector || (sector.preset != null && sector.preset.unlocked()); //is an unlocked preset } @@ -246,7 +244,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ addListener(new ElementGestureListener(){ @Override public void tap(InputEvent event, float x, float y, int count, KeyCode button){ - if(hovered != null && ((mode == look ? canSelect(hovered) && hovered != launchSector : hovered.unlocked()) || debugSelect)){ + if(hovered != null && (canSelect(hovered) || debugSelect)){ selected = hovered; } @@ -263,11 +261,14 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ Core.scene.setScrollFocus(PlanetDialog.this); } }, + //info text new Table(t -> { t.touchable = Touchable.disabled; t.top(); t.label(() -> mode == select ? "@sectors.select" : "").style(Styles.outlineLabel).color(Pal.accent); }), + buttons, + //planet selection new Table(t -> { t.right(); if(content.planets().count(p -> p.accessible) > 1) { @@ -368,7 +369,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ stable.image().color(Pal.accent).fillX().height(3f).pad(3f).row(); stable.add(sector.save != null ? sector.save.getPlayTime() : "@sectors.unexplored").row(); - if(sector.isAttacked() || sector.hasEnemyBase()){ + if(sector.isAttacked() || !sector.hasBase()){ stable.add("[accent]Difficulty: " + (int)(sector.baseCoverage * 10)).row(); } diff --git a/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java b/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java index c00076d92b..6b6771819d 100644 --- a/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java +++ b/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java @@ -14,8 +14,11 @@ import arc.scene.ui.layout.*; import arc.struct.*; import arc.util.*; import arc.util.io.*; +import mindustry.content.*; +import mindustry.content.TechTree.*; import mindustry.core.GameState.*; import mindustry.core.*; +import mindustry.ctype.*; import mindustry.game.EventType.*; import mindustry.gen.*; import mindustry.graphics.*; @@ -116,6 +119,37 @@ public class SettingsMenuDialog extends SettingsDialog{ t.row(); + t.button("@settings.clearresearch", Icon.trash, style, () -> { + ui.showConfirm("@confirm", "@settings.clearresearch.confirm", () -> { + for(TechNode node : TechTree.all){ + node.reset(); + } + content.each(c -> { + if(c instanceof UnlockableContent u){ + u.clearUnlock(); + } + }); + }); + }).marginLeft(4); + + t.row(); + + t.button("@settings.clearcampaignsaves", Icon.trash, style, () -> { + ui.showConfirm("@confirm", "@settings.clearcampaignsaves.confirm", () -> { + for(var planet : content.planets()){ + for(var sec : planet.sectors){ + sec.clearInfo(); + if(sec.save != null){ + sec.save.delete(); + sec.save = null; + } + } + } + }); + }).marginLeft(4); + + t.row(); + t.button("@data.export", Icon.upload, style, () -> { if(ios){ Fi file = Core.files.local("mindustry-data-export.zip"); @@ -247,7 +281,9 @@ public class SettingsMenuDialog extends SettingsDialog{ game.checkPref("blockreplace", true); game.checkPref("conveyorpathfinding", true); game.checkPref("hints", true); + if(!mobile){ + game.checkPref("backgroundpause", true); game.checkPref("buildautopause", false); } diff --git a/core/src/mindustry/ui/fragments/HudFragment.java b/core/src/mindustry/ui/fragments/HudFragment.java index d51c83881d..8af32b3832 100644 --- a/core/src/mindustry/ui/fragments/HudFragment.java +++ b/core/src/mindustry/ui/fragments/HudFragment.java @@ -92,7 +92,7 @@ public class HudFragment extends Fragment{ //paused table parent.fill(t -> { t.name = "paused"; - t.top().visible(() -> state.isPaused()).touchable = Touchable.disabled; + t.top().visible(() -> state.isPaused() && shown).touchable = Touchable.disabled; t.table(Styles.black5, top -> top.add("@paused").style(Styles.outlineLabel).pad(8f)).growX(); }); @@ -368,9 +368,9 @@ public class HudFragment extends Fragment{ c.clearChildren(); for(Item item : content.items()){ - if(state.secinfo.getExport(item) >= 1){ + if(state.rules.sector != null && state.rules.sector.info.getExport(item) >= 1){ c.image(item.icon(Cicon.small)); - c.label(() -> (int)state.secinfo.getExport(item) + " /s").color(Color.lightGray); + c.label(() -> (int)state.rules.sector.info.getExport(item) + " /s").color(Color.lightGray); c.row(); } } @@ -379,7 +379,7 @@ public class HudFragment extends Fragment{ c.update(() -> { boolean wrong = false; for(Item item : content.items()){ - boolean has = state.secinfo.getExport(item) >= 1; + boolean has = state.rules.sector != null && state.rules.sector.info.getExport(item) >= 1; if(used.get(item.id) != has){ used.set(item.id, has); wrong = true; @@ -389,7 +389,7 @@ public class HudFragment extends Fragment{ rebuild.run(); } }); - }).visible(() -> state.isCampaign() && content.items().contains(i -> state.secinfo.getExport(i) > 0)); + }).visible(() -> state.isCampaign() && content.items().contains(i -> state.rules.sector != null && state.rules.sector.info.getExport(i) > 0)); }); blockfrag.build(parent); @@ -640,6 +640,8 @@ public class HudFragment extends Fragment{ public void draw(){ float next = amount.get(); + if(Float.isNaN(next) || Float.isInfinite(next)) next = 1f; + if(next < last && flash.get()){ blink = 1f; } @@ -648,6 +650,8 @@ public class HudFragment extends Fragment{ value = Mathf.lerpDelta(value, next, 0.15f); last = next; + if(Float.isNaN(value) || Float.isInfinite(value)) value = 1f; + drawInner(Pal.darkishGray); Draw.beginStencil(); diff --git a/core/src/mindustry/ui/fragments/MinimapFragment.java b/core/src/mindustry/ui/fragments/MinimapFragment.java index 5acf3bc6d3..0bb3632a61 100644 --- a/core/src/mindustry/ui/fragments/MinimapFragment.java +++ b/core/src/mindustry/ui/fragments/MinimapFragment.java @@ -113,8 +113,9 @@ public class MinimapFragment extends Fragment{ public void toggle(){ float size = baseSize * zoom * world.width(); float ratio = (float)renderer.minimap.getTexture().height / renderer.minimap.getTexture().width; - panx = (size/2f - player.x() / (world.width() * tilesize) * size) / zoom; - pany = (size*ratio/2f - player.y() / (world.height() * tilesize) * size*ratio) / zoom; + float px = player.dead() ? Core.camera.position.x : player.x, py = player.dead() ? Core.camera.position.y : player.y; + panx = (size/2f - px / (world.width() * tilesize) * size) / zoom; + pany = (size*ratio/2f - py / (world.height() * tilesize) * size*ratio) / zoom; shown = !shown; } } diff --git a/core/src/mindustry/ui/fragments/PlacementFragment.java b/core/src/mindustry/ui/fragments/PlacementFragment.java index 25c009ff63..5aee062508 100644 --- a/core/src/mindustry/ui/fragments/PlacementFragment.java +++ b/core/src/mindustry/ui/fragments/PlacementFragment.java @@ -342,7 +342,7 @@ public class PlacementFragment extends Fragment{ topTable.row(); topTable.table(b -> { b.image(Icon.cancel).padRight(2).color(Color.scarlet); - b.add(!player.isBuilder() ? "@unit.nobuild" : displayBlock.unplaceableMessage()).width(190f).wrap(); + b.add(!player.isBuilder() ? "@unit.nobuild" : "@banned").width(190f).wrap(); b.left(); }).padTop(2).left(); } diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 09814e1333..59a75babf2 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -100,6 +100,8 @@ public class Block extends UnlockableContent{ public boolean autoResetEnabled = true; /** if true, the block stops updating when disabled */ public boolean noUpdateDisabled = false; + /** Whether to use this block's color in the minimap. Only used for overlays. */ + public boolean useColor = true; /** tile entity health */ public int health = -1; /** base block explosiveness */ @@ -131,6 +133,8 @@ public class Block extends UnlockableContent{ public int unitCapModifier = 0; /** Whether the block can be tapped and selected to configure. */ public boolean configurable; + /** If true, this block can be configured by logic. */ + public boolean logicConfigurable = false; /** Whether this block consumes touchDown events when tapped. */ public boolean consumesTap; /** Whether to draw the glow of the liquid for this block, if it has one. */ @@ -187,8 +191,6 @@ public class Block extends UnlockableContent{ public float buildCost; /** Whether this block is visible and can currently be built. */ public BuildVisibility buildVisibility = BuildVisibility.hidden; - /** Defines when this block can be placed. */ - public BuildPlaceability buildPlaceability = BuildPlaceability.always; /** Multiplier for speed of building this block. */ public float buildCostMultiplier = 1f; /** Multiplier for cost of research in tech tree. */ @@ -354,7 +356,7 @@ public class Block extends UnlockableContent{ current = entity -> entity.liquids == null ? Liquids.water : entity.liquids.current(); } bars.add("liquid", entity -> new Bar(() -> entity.liquids.get(current.get(entity)) <= 0.001f ? Core.bundle.get("bar.liquid") : current.get(entity).localizedName, - () -> current.get(entity).barColor(), () -> entity.liquids.get(current.get(entity)) / liquidCapacity)); + () -> current.get(entity).barColor(), () -> entity == null || entity.liquids == null ? 0f : entity.liquids.get(current.get(entity)) / liquidCapacity)); } if(hasPower && consumes.hasPower()){ @@ -517,7 +519,7 @@ public class Block extends UnlockableContent{ } public boolean isPlaceable(){ - return isVisible() && buildPlaceability.placeable() && !state.rules.bannedBlocks.contains(this); + return isVisible() && !state.rules.bannedBlocks.contains(this); } /** Called when building of this block begins. */ @@ -530,11 +532,6 @@ public class Block extends UnlockableContent{ } - /** @return a message detailing why this block can't be placed. */ - public String unplaceableMessage(){ - return state.rules.bannedBlocks.contains(this) ? Core.bundle.get("banned") : buildPlaceability.message(); - } - public boolean isFloor(){ return this instanceof Floor; } @@ -620,7 +617,7 @@ public class Block extends UnlockableContent{ public ItemStack[] researchRequirements(){ ItemStack[] out = new ItemStack[requirements.length]; for(int i = 0; i < out.length; i++){ - int quantity = 40 + Mathf.round(Mathf.pow(requirements[i].amount, 1.15f) * 20 * researchCostMultiplier, 10); + int quantity = 60 + Mathf.round(Mathf.pow(requirements[i].amount, 1.15f) * 20 * researchCostMultiplier, 10); out[i] = new ItemStack(requirements[i].item, UI.roundAmount(quantity)); } @@ -672,6 +669,14 @@ public class Block extends UnlockableContent{ consumes.init(); + if(!logicConfigurable){ + configurations.each((key, val) -> { + if(UnlockableContent.class.isAssignableFrom(key)){ + logicConfigurable = true; + } + }); + } + if(!outputsPower && consumes.hasPower() && consumes.getPower().buffered){ throw new IllegalArgumentException("Consumer using buffered power: " + name); } diff --git a/core/src/mindustry/world/Build.java b/core/src/mindustry/world/Build.java index 98409e6d18..70e6bb653b 100644 --- a/core/src/mindustry/world/Build.java +++ b/core/src/mindustry/world/Build.java @@ -126,7 +126,6 @@ public class Build{ for(int dy = 0; dy < type.size; dy++){ int wx = dx + offsetx + tile.x, wy = dy + offsety + tile.y; - Tile check = world.tile(wx, wy); if( @@ -136,6 +135,10 @@ public class Build{ !check.interactable(team) || //cannot interact !check.floor().placeableOn || //solid wall !((type.canReplace(check.block()) || //can replace type + //controversial change: allow rebuilding damaged blocks + //this could be buggy and abusable, so I'm not enabling it yet + //note that this requires a change in BuilderComp as well + //(type == check.block() && check.centerX() == x && check.centerY() == y && check.build != null && check.build.health < check.build.maxHealth - 0.0001f) || (check.block instanceof ConstructBlock && check.bc().cblock == type && check.centerX() == tile.x && check.centerY() == tile.y)) && //same type in construction type.bounds(tile.x, tile.y, Tmp.r1).grow(0.01f).contains(check.block.bounds(check.centerX(), check.centerY(), Tmp.r2))) || //no replacement (type.requiresWater && check.floor().liquidDrop != Liquids.water) //requires water but none found diff --git a/core/src/mindustry/world/blocks/campaign/LaunchPad.java b/core/src/mindustry/world/blocks/campaign/LaunchPad.java index ff069acc48..5a05768f26 100644 --- a/core/src/mindustry/world/blocks/campaign/LaunchPad.java +++ b/core/src/mindustry/world/blocks/campaign/LaunchPad.java @@ -119,7 +119,7 @@ public class LaunchPad extends Block{ table.row(); table.label(() -> { - Sector dest = state.secinfo.getRealDestination(); + Sector dest = state.rules.sector == null ? null : state.rules.sector.info.getRealDestination(); return Core.bundle.format("launch.destination", dest == null ? Core.bundle.get("sectors.nonelaunch") : @@ -135,7 +135,11 @@ public class LaunchPad extends Block{ } table.button(Icon.upOpen, Styles.clearTransi, () -> { - ui.planet.showSelect(state.rules.sector, other -> state.secinfo.destination = other); + ui.planet.showSelect(state.rules.sector, other -> { + if(state.isCampaign()){ + state.rules.sector.info.destination = other; + } + }); deselect(); }).size(40f); } @@ -208,7 +212,7 @@ public class LaunchPad extends Block{ public void remove(){ if(!state.isCampaign()) return; - Sector destsec = state.secinfo.getRealDestination(); + Sector destsec = state.rules.sector.info.getRealDestination(); //actually launch the items upon removal if(team() == state.rules.defaultTeam){ @@ -219,7 +223,7 @@ public class LaunchPad extends Block{ dest.add(stack); //update export - state.secinfo.handleItemExport(stack); + state.rules.sector.info.handleItemExport(stack); Events.fire(new LaunchItemEvent(stack)); } diff --git a/core/src/mindustry/world/blocks/distribution/Conveyor.java b/core/src/mindustry/world/blocks/distribution/Conveyor.java index 9ad1f01bea..b7d973cfe7 100644 --- a/core/src/mindustry/world/blocks/distribution/Conveyor.java +++ b/core/src/mindustry/world/blocks/distribution/Conveyor.java @@ -67,7 +67,7 @@ public class Conveyor extends Block implements Autotiler{ @Override public boolean blends(Tile tile, int rotation, int otherx, int othery, int otherrot, Block otherblock){ - return (otherblock.outputsItems() || lookingAt(tile, rotation, otherx, othery, otherblock)) + return (otherblock.outputsItems() || (lookingAt(tile, rotation, otherx, othery, otherblock) && otherblock.hasItems)) && lookingAtEither(tile, rotation, otherx, othery, otherrot, otherblock); } @@ -183,7 +183,7 @@ public class Conveyor extends Block implements Autotiler{ @Override public void unitOn(Unit unit){ - if(clogHeat > 0.5f) return; + if(clogHeat > 0.5f || !enabled) return; noSleep(); diff --git a/core/src/mindustry/world/blocks/distribution/MassDriver.java b/core/src/mindustry/world/blocks/distribution/MassDriver.java index 1776ed7522..9191e7dfe1 100644 --- a/core/src/mindustry/world/blocks/distribution/MassDriver.java +++ b/core/src/mindustry/world/blocks/distribution/MassDriver.java @@ -105,6 +105,10 @@ public class MassDriver extends Block{ Building link = world.build(this.link); boolean hasLink = linkValid(); + if(hasLink){ + this.link = link.pos(); + } + //reload regardless of state if(reload > 0f){ reload = Mathf.clamp(reload - edelta() / reloadTime); diff --git a/core/src/mindustry/world/blocks/distribution/StackConveyor.java b/core/src/mindustry/world/blocks/distribution/StackConveyor.java index f3c400ad9b..48ac8c8138 100644 --- a/core/src/mindustry/world/blocks/distribution/StackConveyor.java +++ b/core/src/mindustry/world/blocks/distribution/StackConveyor.java @@ -156,11 +156,13 @@ public class StackConveyor extends Block implements Autotiler{ if(bits[0] == 0 && blends(tile, rotation, 0) && !blends(tile, rotation, 2)) state = stateLoad; // a 0 that faces into a conveyor with none behind it if(bits[0] == 0 && !blends(tile, rotation, 0) && blends(tile, rotation, 2)) state = stateUnload; // a 0 that faces into none with a conveyor behind it - blendprox = 0; + if(!headless){ + blendprox = 0; - for(int i = 0; i < 4; i++){ - if(blends(tile, rotation, i)){ - blendprox |= (1 << i); + for(int i = 0; i < 4; i++){ + if(blends(tile, rotation, i)){ + blendprox |= (1 << i); + } } } diff --git a/core/src/mindustry/world/blocks/environment/Floor.java b/core/src/mindustry/world/blocks/environment/Floor.java index cacf375cef..113617cc63 100644 --- a/core/src/mindustry/world/blocks/environment/Floor.java +++ b/core/src/mindustry/world/blocks/environment/Floor.java @@ -64,6 +64,8 @@ public class Floor extends Block{ public Block wall = Blocks.air; /** Decoration block. Usually a rock. May be air. */ public Block decoration = Blocks.air; + /** Whether this overlay needs a surface to be on. False for floating blocks, like spawns. */ + public boolean needsSurface = true; protected TextureRegion[][] edges; protected Seq blenders = new Seq<>(); diff --git a/core/src/mindustry/world/blocks/environment/OreBlock.java b/core/src/mindustry/world/blocks/environment/OreBlock.java index 943d91076d..c08a3eccce 100644 --- a/core/src/mindustry/world/blocks/environment/OreBlock.java +++ b/core/src/mindustry/world/blocks/environment/OreBlock.java @@ -20,6 +20,7 @@ public class OreBlock extends OverlayFloor{ this.itemDrop = ore; this.variants = 3; this.mapColor.set(ore.color); + this.useColor = true; } /** For mod use only!*/ diff --git a/core/src/mindustry/world/blocks/environment/OverlayFloor.java b/core/src/mindustry/world/blocks/environment/OverlayFloor.java index f7a92ceeb3..4c57943aed 100644 --- a/core/src/mindustry/world/blocks/environment/OverlayFloor.java +++ b/core/src/mindustry/world/blocks/environment/OverlayFloor.java @@ -9,6 +9,7 @@ public class OverlayFloor extends Floor{ public OverlayFloor(String name){ super(name); + useColor = false; } @Override diff --git a/core/src/mindustry/world/blocks/logic/LogicBlock.java b/core/src/mindustry/world/blocks/logic/LogicBlock.java index 488c44604d..8ccc558299 100644 --- a/core/src/mindustry/world/blocks/logic/LogicBlock.java +++ b/core/src/mindustry/world/blocks/logic/LogicBlock.java @@ -8,6 +8,7 @@ import arc.struct.*; import arc.util.*; import arc.util.io.*; import mindustry.*; +import mindustry.ai.types.*; import mindustry.core.*; import mindustry.gen.*; import mindustry.graphics.*; @@ -213,6 +214,16 @@ public class LogicBlock extends Block{ x += tileX(); y += tileY(); } + + Building build = world.build(x, y); + + if(build != null){ + String bestName = getLinkName(build.block); + if(!name.startsWith(bestName)){ + name = findLinkName(build.block); + } + } + links.add(new LogicLink(x, y, name, validLink(world.build(x, y)))); } } @@ -421,6 +432,13 @@ public class LogicBlock extends Block{ } } + @Override + public void drawSelect() { + Groups.unit.each(u -> u.controller() instanceof LogicAI ai && ai.controller == this, unit -> { + Drawf.square(unit.x, unit.y, unit.hitSize, unit.rotation + 45); + }); + } + public boolean validLink(Building other){ return other != null && other.isValid() && other.team == team && other.within(this, range + other.block.size*tilesize/2f) && !(other instanceof ConstructBuild); } diff --git a/core/src/mindustry/world/blocks/logic/LogicDisplay.java b/core/src/mindustry/world/blocks/logic/LogicDisplay.java index 505791e1b0..998f7d6083 100644 --- a/core/src/mindustry/world/blocks/logic/LogicDisplay.java +++ b/core/src/mindustry/world/blocks/logic/LogicDisplay.java @@ -9,6 +9,7 @@ import arc.util.*; import mindustry.annotations.Annotations.*; import mindustry.gen.*; import mindustry.graphics.*; +import mindustry.ui.*; import mindustry.world.*; import mindustry.world.meta.*; @@ -22,7 +23,8 @@ public class LogicDisplay extends Block{ commandLineRect = 5, commandPoly = 6, commandLinePoly = 7, - commandTriangle = 8; + commandTriangle = 8, + commandImage = 9; public int maxSides = 25; @@ -84,6 +86,7 @@ public class LogicDisplay extends Block{ case commandTriangle -> Fill.tri(x, y, p1, p2, p3, p4); case commandColor -> Draw.color(this.color = Color.toFloatBits(x, y, p1, p2)); case commandStroke -> Lines.stroke(this.stroke = x); + case commandImage -> Draw.rect(Fonts.logicIcon(p1), x, y, p2, p2, p3); } } @@ -110,7 +113,8 @@ public class LogicDisplay extends Block{ lineRect, poly, linePoly, - triangle; + triangle, + image; public static final GraphicsType[] all = values(); } diff --git a/core/src/mindustry/world/blocks/power/PowerNode.java b/core/src/mindustry/world/blocks/power/PowerNode.java index 042b03099e..3cba419444 100644 --- a/core/src/mindustry/world/blocks/power/PowerNode.java +++ b/core/src/mindustry/world/blocks/power/PowerNode.java @@ -183,7 +183,7 @@ public class PowerNode extends PowerBlock{ protected void getPotentialLinks(Tile tile, Cons others){ Boolf valid = other -> other != null && other.tile() != tile && other.power != null && - ((!other.block.outputsPower && other.block.consumesPower) || (other.block.outputsPower && !other.block.consumesPower) || other.block instanceof PowerNode) && + (other.block.outputsPower || other.block.consumesPower || other.block instanceof PowerNode) && overlaps(tile.x * tilesize + offset, tile.y * tilesize + offset, other.tile(), laserRange * tilesize) && other.team == player.team() && !other.proximity.contains(e -> e.tile == tile) && !graphs.contains(other.power.graph); @@ -280,8 +280,8 @@ public class PowerNode extends PowerBlock{ public void placed(){ if(net.client()) return; - Boolf valid = other -> other != null && other != this && ((!other.block.outputsPower && other.block.consumesPower) || - (other.block.outputsPower && !other.block.consumesPower) || other.block instanceof PowerNode) && linkValid(this, other) + Boolf valid = other -> other != null && other != this && + (other.block.outputsPower || other.block.consumesPower || other.block instanceof PowerNode) && linkValid(this, other) && !other.proximity().contains(this) && other.power.graph != power.graph; tempTileEnts.clear(); diff --git a/core/src/mindustry/world/blocks/production/GenericCrafter.java b/core/src/mindustry/world/blocks/production/GenericCrafter.java index c992be7d78..051fbe9f25 100644 --- a/core/src/mindustry/world/blocks/production/GenericCrafter.java +++ b/core/src/mindustry/world/blocks/production/GenericCrafter.java @@ -37,11 +37,6 @@ public class GenericCrafter extends Block{ @Override public void setStats(){ - if(consumes.has(ConsumeType.liquid)){ - ConsumeLiquidBase cons = consumes.get(ConsumeType.liquid); - cons.timePeriod = craftTime; - } - super.setStats(); stats.add(Stat.productionTime, craftTime / 60f, StatUnit.seconds); @@ -50,7 +45,7 @@ public class GenericCrafter extends Block{ } if(outputLiquid != null){ - stats.add(Stat.output, outputLiquid.liquid, outputLiquid.amount, false); + stats.add(Stat.output, outputLiquid.liquid, outputLiquid.amount * (60f / craftTime), true); } } diff --git a/core/src/mindustry/world/blocks/production/LiquidConverter.java b/core/src/mindustry/world/blocks/production/LiquidConverter.java index 8a9725d42d..da40f17842 100644 --- a/core/src/mindustry/world/blocks/production/LiquidConverter.java +++ b/core/src/mindustry/world/blocks/production/LiquidConverter.java @@ -27,7 +27,7 @@ public class LiquidConverter extends GenericCrafter{ public void setStats(){ super.setStats(); stats.remove(Stat.output); - stats.add(Stat.output, outputLiquid.liquid, outputLiquid.amount * craftTime, false); + stats.add(Stat.output, outputLiquid.liquid, outputLiquid.amount * 60f, true); } public class LiquidConverterBuild extends GenericCrafterBuild{ diff --git a/core/src/mindustry/world/blocks/production/Separator.java b/core/src/mindustry/world/blocks/production/Separator.java index d9b355cc70..a44b854c13 100644 --- a/core/src/mindustry/world/blocks/production/Separator.java +++ b/core/src/mindustry/world/blocks/production/Separator.java @@ -34,11 +34,6 @@ public class Separator extends Block{ @Override public void setStats(){ - if(consumes.has(ConsumeType.liquid)){ - ConsumeLiquidBase cons = consumes.get(ConsumeType.liquid); - cons.timePeriod = craftTime; - } - super.setStats(); stats.add(Stat.output, new ItemFilterValue(item -> { diff --git a/core/src/mindustry/world/blocks/sandbox/ItemVoid.java b/core/src/mindustry/world/blocks/sandbox/ItemVoid.java index 6ba1c9c5a6..030433d43d 100644 --- a/core/src/mindustry/world/blocks/sandbox/ItemVoid.java +++ b/core/src/mindustry/world/blocks/sandbox/ItemVoid.java @@ -3,11 +3,13 @@ package mindustry.world.blocks.sandbox; import mindustry.gen.*; import mindustry.type.*; import mindustry.world.*; +import mindustry.world.meta.*; public class ItemVoid extends Block{ public ItemVoid(String name){ super(name); + group = BlockGroup.transportation; update = solid = acceptsItems = true; } diff --git a/core/src/mindustry/world/blocks/sandbox/LiquidSource.java b/core/src/mindustry/world/blocks/sandbox/LiquidSource.java index d3a89433aa..25d84598bf 100644 --- a/core/src/mindustry/world/blocks/sandbox/LiquidSource.java +++ b/core/src/mindustry/world/blocks/sandbox/LiquidSource.java @@ -9,6 +9,7 @@ import mindustry.gen.*; import mindustry.type.*; import mindustry.world.*; import mindustry.world.blocks.*; +import mindustry.world.meta.*; import static mindustry.Vars.*; @@ -25,6 +26,7 @@ public class LiquidSource extends Block{ saveConfig = true; noUpdateDisabled = true; displayFlow = false; + group = BlockGroup.liquids; config(Liquid.class, (LiquidSourceBuild tile, Liquid l) -> tile.source = l); configClear((LiquidSourceBuild tile) -> tile.source = null); diff --git a/core/src/mindustry/world/blocks/sandbox/LiquidVoid.java b/core/src/mindustry/world/blocks/sandbox/LiquidVoid.java index 3eeb628db8..bde9742467 100644 --- a/core/src/mindustry/world/blocks/sandbox/LiquidVoid.java +++ b/core/src/mindustry/world/blocks/sandbox/LiquidVoid.java @@ -3,6 +3,7 @@ package mindustry.world.blocks.sandbox; import mindustry.gen.*; import mindustry.type.*; import mindustry.world.*; +import mindustry.world.meta.*; public class LiquidVoid extends Block{ @@ -11,6 +12,7 @@ public class LiquidVoid extends Block{ hasLiquids = true; solid = true; update = true; + group = BlockGroup.liquids; } @Override diff --git a/core/src/mindustry/world/blocks/storage/CoreBlock.java b/core/src/mindustry/world/blocks/storage/CoreBlock.java index 039c7cc3cf..9ed4285070 100644 --- a/core/src/mindustry/world/blocks/storage/CoreBlock.java +++ b/core/src/mindustry/world/blocks/storage/CoreBlock.java @@ -339,15 +339,15 @@ public class CoreBlock extends StorageBlock{ public void itemTaken(Item item){ if(state.isCampaign() && team == state.rules.defaultTeam){ //update item taken amount - state.secinfo.handleCoreItem(item, -1); + state.rules.sector.info.handleCoreItem(item, -1); } } @Override public void handleItem(Building source, Item item){ if(net.server() || !net.active()){ - if(team == state.rules.defaultTeam){ - state.secinfo.handleCoreItem(item, 1); + if(team == state.rules.defaultTeam && state.isCampaign()){ + state.rules.sector.info.handleCoreItem(item, 1); } if(items.get(item) >= getMaximumAccepted(item)){ diff --git a/core/src/mindustry/world/blocks/storage/StorageBlock.java b/core/src/mindustry/world/blocks/storage/StorageBlock.java index 32b3713350..b7581b4dfb 100644 --- a/core/src/mindustry/world/blocks/storage/StorageBlock.java +++ b/core/src/mindustry/world/blocks/storage/StorageBlock.java @@ -11,6 +11,7 @@ import mindustry.world.blocks.storage.CoreBlock.*; import mindustry.world.meta.*; public class StorageBlock extends Block{ + public StorageBlock(String name){ super(name); hasItems = true; diff --git a/core/src/mindustry/world/blocks/units/UnitFactory.java b/core/src/mindustry/world/blocks/units/UnitFactory.java index 500385966e..f76fd42dfe 100644 --- a/core/src/mindustry/world/blocks/units/UnitFactory.java +++ b/core/src/mindustry/world/blocks/units/UnitFactory.java @@ -33,8 +33,6 @@ public class UnitFactory extends UnitBlock{ hasPower = true; hasItems = true; solid = true; - //flags = EnumSet.of(BlockFlag.producer, BlockFlag.unitModifier); - //unitCapModifier = 2; configurable = true; outputsPayload = true; rotate = true; @@ -44,6 +42,11 @@ public class UnitFactory extends UnitBlock{ tile.progress = 0; }); + config(UnitType.class, (UnitFactoryBuild tile, UnitType val) -> { + tile.currentPlan = plans.indexOf(p -> p.unit == val); + tile.progress = 0; + }); + consumes.add(new ConsumeItemDynamic((UnitFactoryBuild e) -> e.currentPlan != -1 ? plans.get(e.currentPlan).requirements : ItemStack.empty)); } @@ -88,6 +91,18 @@ public class UnitFactory extends UnitBlock{ super.setStats(); stats.remove(Stat.itemCapacity); + + stats.add(Stat.output, table -> { + Seq p = plans.select(u -> u.unit.unlockedNow()); + table.row(); + for(var plan : p){ + if(plan.unit.unlockedNow()){ + table.image(plan.unit.icon(Cicon.small)).size(8 * 3).padRight(2).right(); + table.add(plan.unit.localizedName).left(); + table.row(); + } + } + }); } @Override diff --git a/core/src/mindustry/world/consumers/ConsumeLiquid.java b/core/src/mindustry/world/consumers/ConsumeLiquid.java index 839b59c607..0834935198 100644 --- a/core/src/mindustry/world/consumers/ConsumeLiquid.java +++ b/core/src/mindustry/world/consumers/ConsumeLiquid.java @@ -46,6 +46,6 @@ public class ConsumeLiquid extends ConsumeLiquidBase{ @Override public void display(Stats stats){ - stats.add(booster ? Stat.booster : Stat.input, liquid, amount * timePeriod, timePeriod == 60); + stats.add(booster ? Stat.booster : Stat.input, liquid, amount * 60f, true); } } diff --git a/core/src/mindustry/world/consumers/ConsumeLiquidBase.java b/core/src/mindustry/world/consumers/ConsumeLiquidBase.java index 47b1eb8834..5e581fc610 100644 --- a/core/src/mindustry/world/consumers/ConsumeLiquidBase.java +++ b/core/src/mindustry/world/consumers/ConsumeLiquidBase.java @@ -5,13 +5,6 @@ import mindustry.gen.*; public abstract class ConsumeLiquidBase extends Consume{ /** amount used per frame */ public final float amount; - /** - * How much time is taken to use this liquid, in ticks. Used only for visual purposes. - * Example: a normal ConsumeLiquid with 10/s and a 10 second timePeriod would display as "100 seconds". - * Without a time override, it would display as "10 liquid/second". - * This is used for generic crafters. - */ - public float timePeriod = 60; public ConsumeLiquidBase(float amount){ this.amount = amount; diff --git a/core/src/mindustry/world/consumers/ConsumeLiquidFilter.java b/core/src/mindustry/world/consumers/ConsumeLiquidFilter.java index 851cf75fd2..268cdfaf54 100644 --- a/core/src/mindustry/world/consumers/ConsumeLiquidFilter.java +++ b/core/src/mindustry/world/consumers/ConsumeLiquidFilter.java @@ -50,6 +50,6 @@ public class ConsumeLiquidFilter extends ConsumeLiquidBase{ @Override public void display(Stats stats){ - stats.add(booster ? Stat.booster : Stat.input, new LiquidFilterValue(filter, amount * timePeriod, timePeriod == 60f)); + stats.add(booster ? Stat.booster : Stat.input, new LiquidFilterValue(filter, amount * 60f, true)); } } diff --git a/core/src/mindustry/world/meta/BlockFlag.java b/core/src/mindustry/world/meta/BlockFlag.java index a3fe674e37..ca4ded3db3 100644 --- a/core/src/mindustry/world/meta/BlockFlag.java +++ b/core/src/mindustry/world/meta/BlockFlag.java @@ -4,6 +4,8 @@ package mindustry.world.meta; public enum BlockFlag{ /** Enemy core; primary target for all units. */ core, + /** Vault/container/etc */ + storage, /** Something that generates power. */ generator, /** Any turret. */ diff --git a/core/src/mindustry/world/meta/BuildPlaceability.java b/core/src/mindustry/world/meta/BuildPlaceability.java deleted file mode 100644 index 3799c74207..0000000000 --- a/core/src/mindustry/world/meta/BuildPlaceability.java +++ /dev/null @@ -1,32 +0,0 @@ -package mindustry.world.meta; - -import arc.*; -import arc.func.*; -import mindustry.*; - -import java.util.*; - -/** - * Like BuildVisiblity, but defines whether a block can be *placed*, with an extra message. - * This is like defining a conditionally banned block. - * */ -public enum BuildPlaceability{ - always(() -> true), - sectorCaptured(() -> Vars.state.rules.sector != null && Vars.state.rules.sector.isCaptured()); - - private final Boolp placeability; - - BuildPlaceability(Boolp placeability){ - this.placeability = placeability; - } - - public boolean placeable(){ - return placeability.get(); - } - - /** @return why this block is banned. */ - public String message(){ - return Core.bundle.get("unplaceable." + name().toLowerCase(Locale.ROOT)); - } - -} diff --git a/core/src/mindustry/world/meta/BuildVisibility.java b/core/src/mindustry/world/meta/BuildVisibility.java index a25e8ff749..9e08a023ef 100644 --- a/core/src/mindustry/world/meta/BuildVisibility.java +++ b/core/src/mindustry/world/meta/BuildVisibility.java @@ -7,10 +7,10 @@ public enum BuildVisibility{ hidden(() -> false), shown(() -> true), debugOnly(() -> false), - sandboxOnly(() -> Vars.state.rules.infiniteResources), - campaignOnly(() -> Vars.state.isCampaign()), - lightingOnly(() -> Vars.state.rules.lighting), - ammoOnly(() -> Vars.state.rules.unitAmmo); + sandboxOnly(() -> Vars.state == null || Vars.state.rules.infiniteResources), + campaignOnly(() -> Vars.state == null || Vars.state.isCampaign()), + lightingOnly(() -> Vars.state == null || Vars.state.rules.lighting || Vars.state.isCampaign()), + ammoOnly(() -> Vars.state == null || Vars.state.rules.unitAmmo); private final Boolp visible; diff --git a/core/src/mindustry/world/meta/Stat.java b/core/src/mindustry/world/meta/Stat.java index 94e4c17b2c..718dbb8f2d 100644 --- a/core/src/mindustry/world/meta/Stat.java +++ b/core/src/mindustry/world/meta/Stat.java @@ -18,13 +18,18 @@ public enum Stat{ heatCapacity, viscosity, temperature, + flying, speed, buildSpeed, mineSpeed, mineTier, + payloadCapacity, + commandLimit, baseDeflectChance, lightningChance, lightningDamage, + abilities, + canBoost, itemCapacity(StatCat.items), itemsMoved(StatCat.items), @@ -50,20 +55,20 @@ public enum Stat{ linkRange(StatCat.crafting), instructions(StatCat.crafting), - speedIncrease(StatCat.shooting), - repairTime(StatCat.shooting), - range(StatCat.shooting), - shootRange(StatCat.shooting), - inaccuracy(StatCat.shooting), - shots(StatCat.shooting), - reload(StatCat.shooting), - powerShot(StatCat.shooting), - targetsAir(StatCat.shooting), - targetsGround(StatCat.shooting), - damage(StatCat.shooting), - ammo(StatCat.shooting), - shieldHealth(StatCat.shooting), - cooldownTime(StatCat.shooting), + speedIncrease(StatCat.function), + repairTime(StatCat.function), + range(StatCat.function), + shootRange(StatCat.function), + inaccuracy(StatCat.function), + shots(StatCat.function), + reload(StatCat.function), + powerShot(StatCat.function), + targetsAir(StatCat.function), + targetsGround(StatCat.function), + damage(StatCat.function), + ammo(StatCat.function), + shieldHealth(StatCat.function), + cooldownTime(StatCat.function), booster(StatCat.optional), boostEffect(StatCat.optional), diff --git a/core/src/mindustry/world/meta/StatCat.java b/core/src/mindustry/world/meta/StatCat.java index 8dfd42d3c5..0398ff7b5d 100644 --- a/core/src/mindustry/world/meta/StatCat.java +++ b/core/src/mindustry/world/meta/StatCat.java @@ -9,7 +9,7 @@ public enum StatCat{ liquids, items, crafting, - shooting, + function, optional; public String localized(){ diff --git a/core/src/mindustry/world/meta/StatUnit.java b/core/src/mindustry/world/meta/StatUnit.java index 42825f0379..b2a866be3e 100644 --- a/core/src/mindustry/world/meta/StatUnit.java +++ b/core/src/mindustry/world/meta/StatUnit.java @@ -9,6 +9,7 @@ import java.util.*; */ public enum StatUnit{ blocks, + blocksSquared, powerSecond, liquidSecond, itemsSecond, diff --git a/core/src/mindustry/world/meta/Stats.java b/core/src/mindustry/world/meta/Stats.java index 68f96ff260..0b1bf192da 100644 --- a/core/src/mindustry/world/meta/Stats.java +++ b/core/src/mindustry/world/meta/Stats.java @@ -5,7 +5,7 @@ import arc.struct.*; import arc.util.*; import mindustry.*; import mindustry.type.*; -import mindustry.world.*; +import mindustry.world.blocks.environment.*; import mindustry.world.meta.values.*; /** Hold and organizes a list of block stats. */ @@ -67,9 +67,10 @@ public class Stats{ } public void add(Stat stat, Attribute attr, boolean floating, float scale){ - for(Block block : Vars.content.blocks()){ - if(!block.isFloor() || block.asFloor().attributes.get(attr) == 0 || (block.asFloor().isLiquid && !floating)) continue; - add(stat, new FloorEfficiencyValue(block.asFloor(), block.asFloor().attributes.get(attr) * scale)); + for(var block : Vars.content.blocks() + .select(block -> block instanceof Floor f && f.attributes.get(attr) != 0 && !(f.isLiquid && !floating)) + .as().with(s -> s.sort(f -> f.attributes.get(attr)))){ + add(stat, new FloorEfficiencyValue(block, block.attributes.get(attr) * scale)); } } diff --git a/desktop/src/mindustry/desktop/DesktopLauncher.java b/desktop/src/mindustry/desktop/DesktopLauncher.java index 76b72e3ca3..eedbd75f70 100644 --- a/desktop/src/mindustry/desktop/DesktopLauncher.java +++ b/desktop/src/mindustry/desktop/DesktopLauncher.java @@ -246,7 +246,7 @@ public class DesktopLauncher extends ClientLauncher{ if(inGame){ //TODO implement nice name for sector - gameMapWithWave = Strings.capitalize(state.map.name()); + gameMapWithWave = Strings.capitalize(Strings.stripColors(state.map.name())); if(state.rules.waves){ gameMapWithWave += " | Wave " + state.wave; diff --git a/fastlane/metadata/android/en-US/changelogs/29675.txt b/fastlane/metadata/android/en-US/changelogs/29675.txt new file mode 100644 index 0000000000..36a7033ea8 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/29675.txt @@ -0,0 +1,12 @@ +- Added 4 new custom game maps (untested) +- Added new stats to unit info +- Added buttons to clear campaign research+saves +- Added fog weather +- Added weather to some custom game maps +- Added support for weather in JSON mods +- Added better control sync for commanded units +- Added recipe display for reconstructors +- Added titanium fuse ammo +- Made campaign load research from older versions (5.0) +- Campaign: Added more schematics for bases to use +- router. diff --git a/fastlane/metadata/android/en-US/changelogs/29678.txt b/fastlane/metadata/android/en-US/changelogs/29678.txt new file mode 100644 index 0000000000..b484064b86 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/29678.txt @@ -0,0 +1,9 @@ +- Fixed several issues related to the locate logic instruction +- Fixed enemy water spawns not appearing +- Fixed many various issues related to the campaign +- Fixed player camera not resetting its position on new game +- Fixed illuminator being unplaceable in campaign in daylight +- Improved item sprites slightly +- Balancing of campaign waves +- Logic: Added configure instruction for controlling certain blocks +- Added extra starting items to ground zero diff --git a/gradle.properties b/gradle.properties index 1642144d7a..79032ee64c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.daemon=true org.gradle.jvmargs=-Xms256m -Xmx1024m -archash=4965359d2857f529f7010c73bc89876d347fa424 +archash=f316225521c91df6c132b13fa2044d969ec39231 diff --git a/servers_be.json b/servers_be.json index ae667423c5..e96fbcaf99 100644 --- a/servers_be.json +++ b/servers_be.json @@ -9,7 +9,7 @@ "address": "md.surrealment.com" }, { - "address": "routerchain.ddns.net" + "address": "routerchain.ddns.net:6568" }, { "address": "mindustry.pl:6660" diff --git a/tests/src/test/java/ApplicationTests.java b/tests/src/test/java/ApplicationTests.java index 67d30e5ff9..7dbff14310 100644 --- a/tests/src/test/java/ApplicationTests.java +++ b/tests/src/test/java/ApplicationTests.java @@ -145,7 +145,7 @@ public class ApplicationTests{ tile.build.items.add(Items.coal, 5); tile.build.items.add(Items.titanium, 50); assertEquals(tile.build.items.total(), 55); - tile.build.items.remove(Items.phasefabric, 10); + tile.build.items.remove(Items.phaseFabric, 10); tile.build.items.remove(Items.titanium, 10); assertEquals(tile.build.items.total(), 45); } diff --git a/tools/src/mindustry/tools/Generators.java b/tools/src/mindustry/tools/Generators.java index 645b2ea7f0..5dbc9513e9 100644 --- a/tools/src/mindustry/tools/Generators.java +++ b/tools/src/mindustry/tools/Generators.java @@ -10,6 +10,7 @@ import arc.math.geom.*; import arc.struct.*; import arc.util.*; import arc.util.noise.*; +import mindustry.content.*; import mindustry.ctype.*; import mindustry.game.*; import mindustry.gen.*; @@ -21,6 +22,7 @@ import mindustry.world.*; import mindustry.world.blocks.*; import mindustry.world.blocks.environment.*; import mindustry.world.blocks.legacy.*; +import mindustry.world.meta.*; import static mindustry.Vars.*; @@ -31,6 +33,7 @@ public class Generators{ 0x454545ff, 0x00000000,//0x32394bff, 0x00000099, 0x00000000//0x000000ff ); + static final Cicon logicIcon = Cicon.medium; public static void generate(){ ObjectMap gens = new ObjectMap<>(); @@ -302,6 +305,14 @@ public class Generators{ Image scaled = new Image(icon.size, icon.size); scaled.drawScaled(image); scaled.save("../ui/block-" + block.name + "-" + icon.name()); + + if(block == Blocks.itemVoid){ + Log.info("saving VOID icon @ / @", icon, "../ui/block-" + block.name + "-" + icon.name()); + } + + if(icon == logicIcon && block.synthetic() && block.buildVisibility != BuildVisibility.hidden){ + image.save(block.name + "-icon-logic"); + } } boolean hasEmpty = false; @@ -373,6 +384,10 @@ public class Generators{ if(icon == Cicon.medium){ image.save("../ui/" + item.getContentType() + "-" + item.name + "-icon"); } + + if(icon == logicIcon){ + image.save(item.name + "-icon-logic"); + } } } }); @@ -489,6 +504,10 @@ public class Generators{ scaled.drawScaled(image); scaled.save("../ui/unit-" + type.name + "-" + icon.name()); + + if(icon == logicIcon){ + scaled.save(type.name + "-icon-logic"); + } } }catch(IllegalArgumentException e){ diff --git a/tools/src/mindustry/tools/ScriptMainGenerator.java b/tools/src/mindustry/tools/ScriptMainGenerator.java index e15335e91a..adac05a774 100644 --- a/tools/src/mindustry/tools/ScriptMainGenerator.java +++ b/tools/src/mindustry/tools/ScriptMainGenerator.java @@ -1,6 +1,7 @@ package mindustry.tools; import arc.*; +import arc.Graphics.Cursor.*; import arc.files.*; import arc.graphics.*; import arc.graphics.g2d.*; @@ -43,7 +44,7 @@ public class ScriptMainGenerator{ classes.removeAll(type -> type.isSynthetic() || type.isAnonymousClass() || type.getCanonicalName() == null || Modifier.isPrivate(type.getModifiers()) || blacklist.contains(s -> type.getName().startsWith(base + "." + s + ".")) || nameBlacklist.contains(type.getSimpleName())); - classes.add(NetConnection.class, SaveIO.class); + classes.add(NetConnection.class, SaveIO.class, SystemCursor.class); classes.distinct(); classes.sortComparing(Class::getName);