diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index e40888231a..74396541de 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -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. diff --git a/core/src/io/anuke/mindustry/core/UI.java b/core/src/io/anuke/mindustry/core/UI.java index 39bf7d4271..99c654e579 100644 --- a/core/src/io/anuke/mindustry/core/UI.java +++ b/core/src/io/anuke/mindustry/core/UI.java @@ -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); diff --git a/core/src/io/anuke/mindustry/ui/dialogs/HostDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/HostDialog.java index 8391135c22..ffa0ee3eb4 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/HostDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/HostDialog.java @@ -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(); }); diff --git a/core/src/io/anuke/mindustry/world/BlockStorage.java b/core/src/io/anuke/mindustry/world/BlockStorage.java index a4aab0894f..984858a5ef 100644 --- a/core/src/io/anuke/mindustry/world/BlockStorage.java +++ b/core/src/io/anuke/mindustry/world/BlockStorage.java @@ -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){ diff --git a/core/src/io/anuke/mindustry/world/consumers/Consume.java b/core/src/io/anuke/mindustry/world/consumers/Consume.java index be5d0d6af8..2e176cc670 100644 --- a/core/src/io/anuke/mindustry/world/consumers/Consume.java +++ b/core/src/io/anuke/mindustry/world/consumers/Consume.java @@ -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){ } diff --git a/core/src/io/anuke/mindustry/world/consumers/ConsumeItemFilter.java b/core/src/io/anuke/mindustry/world/consumers/ConsumeItemFilter.java index 81503037f0..3091edfcac 100644 --- a/core/src/io/anuke/mindustry/world/consumers/ConsumeItemFilter.java +++ b/core/src/io/anuke/mindustry/world/consumers/ConsumeItemFilter.java @@ -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 diff --git a/core/src/io/anuke/mindustry/world/consumers/ConsumeItems.java b/core/src/io/anuke/mindustry/world/consumers/ConsumeItems.java index 96f38e4aa3..389a222610 100644 --- a/core/src/io/anuke/mindustry/world/consumers/ConsumeItems.java +++ b/core/src/io/anuke/mindustry/world/consumers/ConsumeItems.java @@ -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); } } diff --git a/core/src/io/anuke/mindustry/world/consumers/ConsumeLiquid.java b/core/src/io/anuke/mindustry/world/consumers/ConsumeLiquid.java index 943e7da6b2..a4e33ad3da 100644 --- a/core/src/io/anuke/mindustry/world/consumers/ConsumeLiquid.java +++ b/core/src/io/anuke/mindustry/world/consumers/ConsumeLiquid.java @@ -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 diff --git a/core/src/io/anuke/mindustry/world/consumers/ConsumeLiquidFilter.java b/core/src/io/anuke/mindustry/world/consumers/ConsumeLiquidFilter.java index 04c2efd3ae..3955b01439 100644 --- a/core/src/io/anuke/mindustry/world/consumers/ConsumeLiquidFilter.java +++ b/core/src/io/anuke/mindustry/world/consumers/ConsumeLiquidFilter.java @@ -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 diff --git a/core/src/io/anuke/mindustry/world/consumers/Consumers.java b/core/src/io/anuke/mindustry/world/consumers/Consumers.java index 6839237d2b..5693b759a5 100644 --- a/core/src/io/anuke/mindustry/world/consumers/Consumers.java +++ b/core/src/io/anuke/mindustry/world/consumers/Consumers.java @@ -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);