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);