Merge remote-tracking branch 'origin/master'

This commit is contained in:
Anuken
2023-10-15 09:52:07 -04:00
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.assist = Assisteix al jugador
command.move = Mou command.move = Mou
command.boost = Sobrevola command.boost = Sobrevola
command.loadUnits = Load Units command.loadUnits = Carrega unitats
command.loadBlocks = Load Blocks command.loadBlocks = Carrega blocs
command.unloadPayload = Unload Payload command.unloadPayload = Descarrega
stance.stop = Cancel Orders stance.stop = Cancel·la les ordres
stance.shoot = Stance: Shoot stance.shoot = Comportament: Dispara
stance.holdfire = Stance: Hold Fire stance.holdfire = Comportament: Mantén el foc
stance.pursuetarget = Stance: Pursue Target stance.pursuetarget = Comportament: Persegueix lobjectiu
stance.patrol = Stance: Patrol Path stance.patrol = Comportament: Patrulla el camí
stance.ram = Stance: Ram\n[lightgray]Straight line movement, no pathfinding stance.ram = Comportament: Senzill\n[lightgray]Mou-te en línia recta, sense encaminador
openlink = Obre lenllaç openlink = Obre lenllaç
copylink = Copia lenllaç copylink = Copia lenllaç
back = Enrere back = Enrere
@@ -655,7 +655,7 @@ marker.shapetext.name = Forma del text
marker.minimap.name = Minimapa marker.minimap.name = Minimapa
marker.shape.name = Forma marker.shape.name = Forma
marker.text.name = Text marker.text.name = Text
marker.line.name = Line marker.line.name = Línia
marker.background = Fons marker.background = Fons
marker.outline = Contorn marker.outline = Contorn
@@ -970,9 +970,9 @@ ability.movelightning = Moviment llampec
ability.shieldarc = Escut de descàrregues ability.shieldarc = Escut de descàrregues
ability.suppressionfield = Regen Suppression Field ability.suppressionfield = Regen Suppression Field
ability.energyfield = Camp de força ability.energyfield = Camp de força
ability.energyfield.sametypehealmultiplier = [lightgray]Same Type Healing: [white]{0}% ability.energyfield.sametypehealmultiplier = [lightgray]Mateix tipus de guarició: [white]{0} %
ability.energyfield.maxtargets = [lightgray]Max Targets: [white]{0} ability.energyfield.maxtargets = [lightgray]Objectius màx.: [white]{0}
ability.regen = Regeneration ability.regen = Regeneració
bar.onlycoredeposit = Només es permet depositar al nucli. bar.onlycoredeposit = Només es permet depositar al nucli.
bar.drilltierreq = Cal una perforadora millor. 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.buildautopause.name = Pausa automàtica quan es construeixi
setting.doubletapmine.name = Dos tocs/clics per a extreure recursos setting.doubletapmine.name = Dos tocs/clics per a extreure recursos
setting.commandmodehold.name = Mantén per al mode de comandament 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.modcrashdisable.name = Desactiva els mods quan no es pugui iniciar el joc
setting.animatedwater.name = Animacions del terreny setting.animatedwater.name = Animacions del terreny
setting.animatedshields.name = Animacions dels escuts 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.mouseposition.name = Mostra la posició del ratolí
setting.musicvol.name = Volum de la música setting.musicvol.name = Volum de la música
setting.atmosphere.name = Mostra latmosfera del planeta 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.ambientvol.name = Volum del so ambiental
setting.mutemusic.name = Silencia la música setting.mutemusic.name = Silencia la música
setting.sfxvol.name = Volums dels efectes de so 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. 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.general.name = General
category.view.name = Control de la vista i altres category.view.name = Control de la vista i altres
category.command.name = Unit Command category.command.name = Ordre dunitat
category.multiplayer.name = Multijugador category.multiplayer.name = Multijugador
category.blocks.name = Selecció destructures per construir category.blocks.name = Selecció destructures per construir
placement.blockselectkeys = \n[lightgray]Tecles: [{0}, 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.pan.name = Desplaça la vista
keybind.boost.name = Sobrevola keybind.boost.name = Sobrevola
keybind.command_mode.name = Mode de comandament keybind.command_mode.name = Mode de comandament
keybind.command_queue.name = Unit Command Queue keybind.command_queue.name = Cua dordres dunitat
keybind.create_control_group.name = Create Control Group keybind.create_control_group.name = Crea un grup de control
keybind.cancel_orders.name = Cancel Orders keybind.cancel_orders.name = Cancel·la les ordres
keybind.unit_stance_shoot.name = Unit Stance: Shoot keybind.unit_stance_shoot.name = Comportament: Dispara
keybind.unit_stance_hold_fire.name = Unit Stance: Hold Fire keybind.unit_stance_hold_fire.name = Comportament: Mantén el foc
keybind.unit_stance_pursue_target.name = Unit Stance: Pursue Target keybind.unit_stance_pursue_target.name = Comportament: Persegueix lobjectiu
keybind.unit_stance_patrol.name = Unit Stance: Patrol keybind.unit_stance_patrol.name = Comportament: Patrulla
keybind.unit_stance_ram.name = Unit Stance: Ram keybind.unit_stance_ram.name = Comportament: Senzill
keybind.unit_command_move = Unit Command: Move keybind.unit_command_move = Comportament: Mou
keybind.unit_command_repair = Unit Command: Repair keybind.unit_command_repair = Comportament: Repara
keybind.unit_command_rebuild = Unit Command: Rebuild keybind.unit_command_rebuild = Comportament: Reconstrueix
keybind.unit_command_assist = Unit Command: Assist keybind.unit_command_assist = Comportament: Assisteix
keybind.unit_command_mine = Unit Command: Mine keybind.unit_command_mine = Comportament: Extrau
keybind.unit_command_boost = Unit Command: Boost keybind.unit_command_boost = Comportament: Sobrevola
keybind.unit_command_load_units = Unit Command: Load Units keybind.unit_command_load_units = Comportament: Carrega unitats
keybind.unit_command_load_blocks = Unit Command: Load Blocks keybind.unit_command_load_blocks = Comportament: Carrega blocs
keybind.unit_command_unload_payload = Unit Command: Unload Payload keybind.unit_command_unload_payload = Comportament: Descarrega
keybind.rebuild_select.name = Reconstrueix la regió keybind.rebuild_select.name = Reconstrueix la regió
keybind.schematic_select.name = Selecciona una regió keybind.schematic_select.name = Selecciona una regió
keybind.schematic_menu.name = Menú de plànols 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.name = Atac
mode.attack.description = Destruïu la base enemiga. \n[gray]Cal que al mapa hi hagi un nucli vermell. mode.attack.description = Destruïu la base enemiga. \n[gray]Cal que al mapa hi hagi un nucli vermell.
mode.custom = Regles personalitzades 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.hidebannedblocks = Amaga els blocs no permesos
rules.infiniteresources = Recursos infinits 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.setflag = Estableix un senyal global que es podrà llegir en tots els processadors.
lst.getflag = Obtén un senyal global. lst.getflag = Obtén un senyal global.
lst.setprop = Estableix una propietat duna unitat o estructura. lst.setprop = Estableix una propietat duna unitat o estructura.
lst.effect = Create a particle effect. lst.effect = Crea un efecte de particula.
lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. lst.sync = Sincronitza una variable a través de la xarxa.\nSinvoca com a molt 10 vegades per segon.
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.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 = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. 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. logic.nounitbuild = [red]Aquí no es permet construir blocs de tipus lògic.

View File

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

View File

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

View File

@@ -8,6 +8,8 @@ import mindustry.gen.*;
import mindustry.world.*; import mindustry.world.*;
import mindustry.world.meta.*; import mindustry.world.meta.*;
import static mindustry.Vars.state;
public class SwitchBlock extends Block{ public class SwitchBlock extends Block{
public Sound clickSound = Sounds.click; public Sound clickSound = Sounds.click;
@@ -25,7 +27,26 @@ public class SwitchBlock extends Block{
config(Boolean.class, (SwitchBuild entity, Boolean b) -> entity.enabled = b); 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{ 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 @Override
public boolean configTapped(){ 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 -> { handler.register("load", "<slot>", "Load a save from a slot.", arg -> {
if(state.isGame()){ if(state.isGame()){
err("Already hosting. Type 'stop' to stop hosting first."); err("Already hosting. Type 'stop' to stop hosting first.");

View File

@@ -89,7 +89,7 @@
}, },
{ {
"name": "Chaotic Neutral", "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", "name": "io",
@@ -121,7 +121,7 @@
}, },
{ {
"name": "Fish", "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", "name": "The Devil",
@@ -210,7 +210,7 @@
}, },
{ {
"name": "Cyandustry", "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", "name": "Four Family",
@@ -255,5 +255,9 @@
{ {
"name": "MineCore", "name": "MineCore",
"address": ["194.247.42.11:27792"] "address": ["194.247.42.11:27792"]
},
{
"name": "Atomic",
"address": ["129.146.33.189:25709", "atomic-lab.ddns.net:30315"]
} }
] ]