Merge remote-tracking branch 'origin/master'

This commit is contained in:
Anuken 2019-10-01 17:35:30 -04:00
commit cb929a7239
10 changed files with 42 additions and 21 deletions

View File

@ -646,7 +646,7 @@ item.coal.name = Carbón
item.graphite.name = Grafito
item.titanium.name = Titanio
item.thorium.name = Torio
item.silicon.name = Silicona
item.silicon.name = Silicio
item.plastanium.name = Plastanio
item.phase-fabric.name = Tejido de fase
item.surge-alloy.name = Aleación Eléctrica
@ -792,7 +792,7 @@ block.distributor.name = Distribuidor
block.sorter.name = Clasificador
block.message.name = Message
block.overflow-gate.name = Compuerta de Desborde
block.silicon-smelter.name = Horno para Silicona
block.silicon-smelter.name = Horno para Silicio
block.phase-weaver.name = Tejedor de Fase
block.pulverizer.name = Pulverizador
block.cryofluidmixer.name = Mezclador de Criogénicos
@ -968,11 +968,11 @@ unit.revenant.description = Una unidad aérea pesada con misiles.
block.message.description = Stores a message. Used for communication between allies.
block.graphite-press.description = Comprime carbón en piezas de grafito puro.
block.multi-press.description = Una versión mejorada de la prensa de grafito. Utiliza agua y energía para procesar carbón rápida y eficientemente.
block.silicon-smelter.description = Reduce arena con coque de alta pureza para producir silicona.
block.silicon-smelter.description = Reduce la arena con carbón puro. Produce silicio.
block.kiln.description = Funde arena y plomo en metacristal. Requiere cantidades pequeñas de energía.
block.plastanium-compressor.description = Produce plastanio con aceite y titanio.
block.phase-weaver.description = Produce tejido de fase del torio radioactivo y altas cantidades de arena.
block.alloy-smelter.description = Produce "surge alloy" con titanio, plomo, silicona y cobre.
block.alloy-smelter.description = Produce "surge alloy" con titanio, plomo, silicio y cobre.
block.cryofluidmixer.description = Combina agua y titanio en líquido criogénico, que es mucho más eficiente para enfriar.
block.blast-mixer.description = Usa aceite para transformar pirotita en un objeto menos inflamable pero más explosivo: compuesto explosivo.
block.pyratite-mixer.description = Mezcla carbón, plomo y arena en pirotita altamente inflamable.
@ -999,7 +999,7 @@ block.surge-wall.description = El bloque defensivo más fuerte.\nTiene una peque
block.surge-wall-large.description = El bloque defensivo más fuerte.\nTiene una pequeña probabilidad de disparar rayos al atacante.\nOcupa múltiplies casillas.
block.door.description = Una puerta pequeña que puede ser abierta y cerrada tocándola.\nSi está abirta, los enemigos pueden moverse y disparar a través de ella.
block.door-large.description = Una puerta grande que puede ser abierta y cerrada tocándola.\nSi está abirta, los enemigos pueden moverse y disparar a través de ella.\nOcupa múltiples casillas.
block.mender.description = Repara bloques cercanos periódicamente. Mantiene a las defensas reparadas entre oleadas.Puede usar silicona opcionalmente para mejorar el alcance y la eficiencia.
block.mender.description = Repara bloques cercanos periódicamente. Mantiene a las defensas reparadas entre oleadas. Puede usar silicio opcionalmente para mejorar el alcance y la eficiencia.
block.mend-projector.description = Regenera edificios cercanos periódcamente.
block.overdrive-projector.description = Aumenta la velocidad de edificios cercanos como taladros y transportadores.
block.force-projector.description = Crea un área de fuerza hexagonal alrededor de él, protegiendo edificios y unidades dentro de él del daño de las balas.

View File

@ -417,6 +417,22 @@ public class UI implements ApplicationListener, Loadable{
dialog.show();
}
public void showCustomConfirm(String title, String text, String yes, String no, Runnable confirmed){
FloatingDialog dialog = new FloatingDialog(title);
dialog.cont.add(text).width(500f).wrap().pad(4f).get().setAlignment(Align.center, Align.center);
dialog.buttons.defaults().size(200f, 54f).pad(2f);
dialog.setFillParent(false);
dialog.buttons.addButton(no, dialog::hide);
dialog.buttons.addButton(yes, () -> {
dialog.hide();
confirmed.run();
});
dialog.keyDown(KeyCode.ESCAPE, dialog::hide);
dialog.keyDown(KeyCode.BACK, dialog::hide);
dialog.show();
}
public void showOkText(String title, String text, Runnable confirmed){
FloatingDialog dialog = new FloatingDialog(title);
dialog.cont.add(text).width(500f).wrap().pad(4f).get().setAlignment(Align.center, Align.center);

View File

@ -70,7 +70,7 @@ public class HostDialog extends FloatingDialog{
if(steam){
Core.app.post(() -> Core.settings.getBoolOnce("steampublic", () -> {
ui.showConfirm("$setting.publichost.name", "$public.confirm", () -> {
ui.showCustomConfirm("$setting.publichost.name", "$public.confirm", "$yes", "$no", () -> {
Core.settings.putSave("publichost", true);
platform.updateLobby();
});

View File

@ -91,11 +91,11 @@ public abstract class BlockStorage extends UnlockableContent{
}
public boolean acceptItem(Item item, Tile tile, Tile source){
return consumes.itemFilters[item.id] && tile.entity.items.get(item) < getMaximumAccepted(tile, item);
return consumes.itemFilters.get(item.id) && tile.entity.items.get(item) < getMaximumAccepted(tile, item);
}
public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount){
return hasLiquids && tile.entity.liquids.get(liquid) + amount < liquidCapacity && consumes.liquidfilters[liquid.id];
return hasLiquids && tile.entity.liquids.get(liquid) + amount < liquidCapacity && consumes.liquidfilters.get(liquid.id);
}
public void handleLiquid(Tile tile, Tile source, Liquid liquid, float amount){

View File

@ -1,5 +1,6 @@
package io.anuke.mindustry.world.consumers;
import io.anuke.arc.collection.*;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.mindustry.entities.type.TileEntity;
import io.anuke.mindustry.world.Tile;
@ -17,7 +18,7 @@ public abstract class Consume{
* Apply a filter to items accepted.
* This should set all item IDs that are present in the filter to true.
*/
public void applyItemFilter(boolean[] filter){
public void applyItemFilter(Bits filter){
}
@ -25,7 +26,7 @@ public abstract class Consume{
* Apply a filter to liquids accepted.
* This should set all liquid IDs that are present in the filter to true.
*/
public void applyLiquidFilter(boolean[] filter){
public void applyLiquidFilter(Bits filter){
}

View File

@ -1,5 +1,6 @@
package io.anuke.mindustry.world.consumers;
import io.anuke.arc.collection.*;
import io.anuke.arc.function.Predicate;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.mindustry.entities.type.TileEntity;
@ -21,8 +22,8 @@ public class ConsumeItemFilter extends Consume{
}
@Override
public void applyItemFilter(boolean[] arr){
content.items().each(filter, item -> arr[item.id] = true);
public void applyItemFilter(Bits arr){
content.items().each(filter, item -> arr.set(item.id));
}
@Override

View File

@ -1,5 +1,6 @@
package io.anuke.mindustry.world.consumers;
import io.anuke.arc.collection.*;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.mindustry.entities.type.TileEntity;
import io.anuke.mindustry.type.Item.Icon;
@ -19,9 +20,9 @@ public class ConsumeItems extends Consume{
}
@Override
public void applyItemFilter(boolean[] filter){
public void applyItemFilter(Bits filter){
for(ItemStack stack : items){
filter[stack.item.id] = true;
filter.set(stack.item.id);
}
}

View File

@ -1,5 +1,6 @@
package io.anuke.mindustry.world.consumers;
import io.anuke.arc.collection.*;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.mindustry.entities.type.TileEntity;
import io.anuke.mindustry.type.Liquid;
@ -17,8 +18,8 @@ public class ConsumeLiquid extends ConsumeLiquidBase{
}
@Override
public void applyLiquidFilter(boolean[] filter){
filter[liquid.id] = true;
public void applyLiquidFilter(Bits filter){
filter.set(liquid.id);
}
@Override

View File

@ -1,6 +1,6 @@
package io.anuke.mindustry.world.consumers;
import io.anuke.arc.collection.Array;
import io.anuke.arc.collection.*;
import io.anuke.arc.function.Predicate;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.mindustry.entities.type.TileEntity;
@ -23,8 +23,8 @@ public class ConsumeLiquidFilter extends ConsumeLiquidBase{
}
@Override
public void applyLiquidFilter(boolean[] arr){
content.liquids().each(filter, item -> arr[item.id] = true);
public void applyLiquidFilter(Bits arr){
content.liquids().each(filter, item -> arr.set(item.id));
}
@Override

View File

@ -1,5 +1,6 @@
package io.anuke.mindustry.world.consumers;
import io.anuke.arc.collection.*;
import io.anuke.arc.function.Predicate;
import io.anuke.arc.util.Structs;
import io.anuke.mindustry.Vars;
@ -12,8 +13,8 @@ public class Consumers{
private Consume[] map = new Consume[ConsumeType.values().length];
private Consume[] results, optionalResults;
public final boolean[] itemFilters = new boolean[Vars.content.items().size];
public final boolean[] liquidfilters = new boolean[Vars.content.liquids().size];
public final Bits itemFilters = new Bits(Vars.content.items().size);
public final Bits liquidfilters = new Bits(Vars.content.liquids().size);
public void init(){
results = Structs.filter(Consume.class, map, m -> m != null);