Merge remote-tracking branch 'origin/master'

This commit is contained in:
Anuken 2023-10-15 09:52:07 -04:00
commit b0f449371e
8 changed files with 106 additions and 42 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 B

View File

@ -348,15 +348,15 @@ command.rebuild = Reconstrueix
command.assist = Assisteix al jugador
command.move = Mou
command.boost = Sobrevola
command.loadUnits = Load Units
command.loadBlocks = Load Blocks
command.unloadPayload = Unload Payload
stance.stop = Cancel Orders
stance.shoot = Stance: Shoot
stance.holdfire = Stance: Hold Fire
stance.pursuetarget = Stance: Pursue Target
stance.patrol = Stance: Patrol Path
stance.ram = Stance: Ram\n[lightgray]Straight line movement, no pathfinding
command.loadUnits = Carrega unitats
command.loadBlocks = Carrega blocs
command.unloadPayload = Descarrega
stance.stop = Cancel·la les ordres
stance.shoot = Comportament: Dispara
stance.holdfire = Comportament: Mantén el foc
stance.pursuetarget = Comportament: Persegueix lobjectiu
stance.patrol = Comportament: Patrulla el camí
stance.ram = Comportament: Senzill\n[lightgray]Mou-te en línia recta, sense encaminador
openlink = Obre lenllaç
copylink = Copia lenllaç
back = Enrere
@ -655,7 +655,7 @@ marker.shapetext.name = Forma del text
marker.minimap.name = Minimapa
marker.shape.name = Forma
marker.text.name = Text
marker.line.name = Line
marker.line.name = Línia
marker.background = Fons
marker.outline = Contorn
@ -970,9 +970,9 @@ ability.movelightning = Moviment llampec
ability.shieldarc = Escut de descàrregues
ability.suppressionfield = Regen Suppression Field
ability.energyfield = Camp de força
ability.energyfield.sametypehealmultiplier = [lightgray]Same Type Healing: [white]{0}%
ability.energyfield.maxtargets = [lightgray]Max Targets: [white]{0}
ability.regen = Regeneration
ability.energyfield.sametypehealmultiplier = [lightgray]Mateix tipus de guarició: [white]{0} %
ability.energyfield.maxtargets = [lightgray]Objectius màx.: [white]{0}
ability.regen = Regeneració
bar.onlycoredeposit = Només es permet depositar al nucli.
bar.drilltierreq = Cal una perforadora millor.
@ -1067,7 +1067,7 @@ setting.backgroundpause.name = Pausa automàtica quan sestigui en segon pla
setting.buildautopause.name = Pausa automàtica quan es construeixi
setting.doubletapmine.name = Dos tocs/clics per a extreure recursos
setting.commandmodehold.name = Mantén per al mode de comandament
setting.distinctcontrolgroups.name = Limit One Control Group Per Unit
setting.distinctcontrolgroups.name = Limita a un grup de control per unitat
setting.modcrashdisable.name = Desactiva els mods quan no es pugui iniciar el joc
setting.animatedwater.name = Animacions del terreny
setting.animatedshields.name = Animacions dels escuts
@ -1114,7 +1114,7 @@ setting.position.name = Mostra la posició del jugador
setting.mouseposition.name = Mostra la posició del ratolí
setting.musicvol.name = Volum de la música
setting.atmosphere.name = Mostra latmosfera del planeta
setting.drawlight.name = Draw Darkness/Lighting
setting.drawlight.name = Dibuixa la foscor/llum
setting.ambientvol.name = Volum del so ambiental
setting.mutemusic.name = Silencia la música
setting.sfxvol.name = Volums dels efectes de so
@ -1141,7 +1141,7 @@ keybind.title = Personalització dels controls
keybinds.mobile = [scarlet]La majoria de dreceres no estan disponibles en les versions per a pantalles tàctils. Només està inclòs el moviment bàsic.
category.general.name = General
category.view.name = Control de la vista i altres
category.command.name = Unit Command
category.command.name = Ordre dunitat
category.multiplayer.name = Multijugador
category.blocks.name = Selecció destructures per construir
placement.blockselectkeys = \n[lightgray]Tecles: [{0},
@ -1159,23 +1159,23 @@ keybind.mouse_move.name = Segueix el ratolí
keybind.pan.name = Desplaça la vista
keybind.boost.name = Sobrevola
keybind.command_mode.name = Mode de comandament
keybind.command_queue.name = Unit Command Queue
keybind.create_control_group.name = Create Control Group
keybind.cancel_orders.name = Cancel Orders
keybind.unit_stance_shoot.name = Unit Stance: Shoot
keybind.unit_stance_hold_fire.name = Unit Stance: Hold Fire
keybind.unit_stance_pursue_target.name = Unit Stance: Pursue Target
keybind.unit_stance_patrol.name = Unit Stance: Patrol
keybind.unit_stance_ram.name = Unit Stance: Ram
keybind.unit_command_move = Unit Command: Move
keybind.unit_command_repair = Unit Command: Repair
keybind.unit_command_rebuild = Unit Command: Rebuild
keybind.unit_command_assist = Unit Command: Assist
keybind.unit_command_mine = Unit Command: Mine
keybind.unit_command_boost = Unit Command: Boost
keybind.unit_command_load_units = Unit Command: Load Units
keybind.unit_command_load_blocks = Unit Command: Load Blocks
keybind.unit_command_unload_payload = Unit Command: Unload Payload
keybind.command_queue.name = Cua dordres dunitat
keybind.create_control_group.name = Crea un grup de control
keybind.cancel_orders.name = Cancel·la les ordres
keybind.unit_stance_shoot.name = Comportament: Dispara
keybind.unit_stance_hold_fire.name = Comportament: Mantén el foc
keybind.unit_stance_pursue_target.name = Comportament: Persegueix lobjectiu
keybind.unit_stance_patrol.name = Comportament: Patrulla
keybind.unit_stance_ram.name = Comportament: Senzill
keybind.unit_command_move = Comportament: Mou
keybind.unit_command_repair = Comportament: Repara
keybind.unit_command_rebuild = Comportament: Reconstrueix
keybind.unit_command_assist = Comportament: Assisteix
keybind.unit_command_mine = Comportament: Extrau
keybind.unit_command_boost = Comportament: Sobrevola
keybind.unit_command_load_units = Comportament: Carrega unitats
keybind.unit_command_load_blocks = Comportament: Carrega blocs
keybind.unit_command_unload_payload = Comportament: Descarrega
keybind.rebuild_select.name = Reconstrueix la regió
keybind.schematic_select.name = Selecciona una regió
keybind.schematic_menu.name = Menú de plànols
@ -1239,7 +1239,7 @@ mode.pvp.description = Lluiteu contra altres jugadors localment.\n[gray]Cal que
mode.attack.name = Atac
mode.attack.description = Destruïu la base enemiga. \n[gray]Cal que al mapa hi hagi un nucli vermell.
mode.custom = Regles personalitzades
rules.invaliddata = Invalid clipboard data.
rules.invaliddata = Dades del porta-retalls no vàlides.
rules.hidebannedblocks = Amaga els blocs no permesos
rules.infiniteresources = Recursos infinits
@ -2274,10 +2274,10 @@ lst.cutscene = Manipula la càmera del jugador.
lst.setflag = Estableix un senyal global que es podrà llegir en tots els processadors.
lst.getflag = Obtén un senyal global.
lst.setprop = Estableix una propietat duna unitat o estructura.
lst.effect = Create a particle effect.
lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most.
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
lst.effect = Crea un efecte de particula.
lst.sync = Sincronitza una variable a través de la xarxa.\nSinvoca com a molt 10 vegades per segon.
lst.makemarker = Crea una marca lògica al món.\nSha de donar un ID per a identificar-la.\nEs poden establir fins a 20.000 marcadors per món.
lst.setmarker = Estableix una propietat per a la marca.\nLID que es faci servir ha de ser el mateix que el de la instrucció de crear la marca.
logic.nounitbuild = [red]Aquí no es permet construir blocs de tipus lògic.

View File

@ -586,3 +586,4 @@
63096=fast|status-fast-ui
63095=ranai|ranai
63094=cat|cat
63093=world-switch|block-world-switch-ui

View File

@ -160,7 +160,7 @@ public class Blocks{
//logic
message, switchBlock, microProcessor, logicProcessor, hyperProcessor, largeLogicDisplay, logicDisplay, memoryCell, memoryBank,
canvas, reinforcedMessage,
worldProcessor, worldCell, worldMessage,
worldProcessor, worldCell, worldMessage, worldSwitch,
//campaign
launchPad, interplanetaryAccelerator
@ -5944,6 +5944,13 @@ public class Blocks{
privileged = true;
}};
worldSwitch = new SwitchBlock("world-switch"){{
requirements(Category.logic, BuildVisibility.editorOnly, with());
targetable = false;
privileged = true;
}};
//endregion
}
}

View File

@ -8,6 +8,8 @@ import mindustry.gen.*;
import mindustry.world.*;
import mindustry.world.meta.*;
import static mindustry.Vars.state;
public class SwitchBlock extends Block{
public Sound clickSound = Sounds.click;
@ -25,7 +27,26 @@ public class SwitchBlock extends Block{
config(Boolean.class, (SwitchBuild entity, Boolean b) -> entity.enabled = b);
}
public boolean accessible(){
return !privileged || state.rules.editor;
}
@Override
public boolean canBreak(Tile tile){
return accessible();
}
public class SwitchBuild extends Building{
@Override
public void damage(float damage){
if(privileged) return;
super.damage(damage);
}
@Override
public boolean collide(Bullet other){
return !privileged;
}
@Override
public boolean configTapped(){

View File

@ -910,6 +910,37 @@ public class ServerControl implements ApplicationListener{
}
});
handler.register("loadautosave", "Loads the last auto-save.", arg -> {
if(state.isGame()){
err("Already hosting. Type 'stop' to stop hosting first.");
return;
}
Fi newestSave = saveDirectory.findAll(f -> f.name().startsWith("auto_")).min(Fi::lastModified);
if(newestSave == null){
err("No auto-saves found! Type `config autosave true` to enable auto-saves.");
return;
}
if(!SaveIO.isSaveValid(newestSave)){
err("No (valid) save data found for slot.");
return;
}
Core.app.post(() -> {
try{
SaveIO.load(newestSave);
state.rules.sector = null;
info("Save loaded.");
state.set(State.playing);
netServer.openServer();
}catch(Throwable t){
err("Failed to load save. Outdated or corrupt file.");
}
});
});
handler.register("load", "<slot>", "Load a save from a slot.", arg -> {
if(state.isGame()){
err("Already hosting. Type 'stop' to stop hosting first.");

View File

@ -89,7 +89,7 @@
},
{
"name": "Chaotic Neutral",
"address": ["c-n.ddns.net:7012", "c-n.ddns.net:7013", "c-n.ddns.net:7014", "c-n.ddns.net:7015", "c-n.ddns.net:7016", "c-n.ddns.net:7017", "37.187.73.180:7021"]
"address": ["c-n.ddns.net:7012", "c-n.ddns.net:7013", "c-n.ddns.net:7014", "c-n.ddns.net:7015", "c-n.ddns.net:7016", "c-n.ddns.net:7017", "c-n.ddns.net:7003", "37.187.73.180:7021"]
},
{
"name": "io",
@ -121,7 +121,7 @@
},
{
"name": "Fish",
"address": ["162.248.101.95", "162.248.100.98", "162.248.100.133", "162.248.102.204"]
"address": ["162.248.101.95", "162.248.100.98", "162.248.100.133", "162.248.102.204", "c-n.ddns.net:7003"]
},
{
"name": "The Devil",
@ -210,7 +210,7 @@
},
{
"name": "Cyandustry",
"address": ["91.218.66.162:8000","91.218.66.162:7000", "91.218.66.162:7500", "91.218.66.162:7600"]
"address": ["136.243.14.186:7000","136.243.14.186:7001", "136.243.14.186:7002", "136.243.14.186:7003", "136.243.14.186:7004", "136.243.14.186:7005", "136.243.14.186:7006"]
},
{
"name": "Four Family",
@ -255,5 +255,9 @@
{
"name": "MineCore",
"address": ["194.247.42.11:27792"]
},
{
"name": "Atomic",
"address": ["129.146.33.189:25709", "atomic-lab.ddns.net:30315"]
}
]