Minor cleanup / Tick reset fix

This commit is contained in:
Anuken
2022-02-13 14:44:10 -05:00
parent ca72541e4e
commit 50cb6b91e3
9 changed files with 71 additions and 18 deletions

View File

@@ -348,7 +348,7 @@ public class PowerGraph{
}
private boolean otherConsumersAreValid(Building build, Consume consumePower){
for(Consume cons : build.block.consumes.all()){
for(Consume cons : build.block.consumes.all){
if(cons != consumePower && !cons.isOptional() && !cons.valid(build)){
return false;
}

View File

@@ -4,5 +4,7 @@ public enum ConsumeType{
item,
power,
liquid,
payload
payload;
public static final ConsumeType[] all = values();
}

View File

@@ -10,8 +10,9 @@ import mindustry.world.blocks.power.*;
import mindustry.world.meta.*;
public class Consumers{
private Consume[] map = new Consume[ConsumeType.values().length];
private Consume[] results, optionalResults;
private Consume[] map = new Consume[ConsumeType.all.length];
public Consume[] all = {}, optionals = {};
public final Bits itemFilters = new Bits(Vars.content.items().size);
public final Bits liquidfilters = new Bits(Vars.content.liquids().size);
@@ -25,7 +26,7 @@ public class Consumers{
}
public boolean any(){
return results != null && results.length > 0;
return all.length > 0;
}
public void each(Cons<Consume> c){
@@ -37,10 +38,10 @@ public class Consumers{
}
public void init(){
results = Structs.filter(Consume.class, map, m -> m != null);
optionalResults = Structs.filter(Consume.class, map, m -> m != null && m.isOptional());
all = Structs.filter(Consume.class, map, m -> m != null);
optionals = Structs.filter(Consume.class, map, m -> m != null && m.isOptional());
for(Consume cons : results){
for(Consume cons : all){
cons.applyItemFilter(itemFilters);
cons.applyLiquidFilter(liquidfilters);
}
@@ -126,18 +127,20 @@ public class Consumers{
return (T)map[type.ordinal()];
}
@Nullable
public <T extends Consume> T getOrNull(ConsumeType type){
public @Nullable <T extends Consume>T getOrNull(ConsumeType type){
return (T)map[type.ordinal()];
}
@Nullable
/** @deprecated unnecessary getter */
@Deprecated
public Consume[] all(){
return results;
return all;
}
/** @deprecated unnecessary getter */
@Deprecated
public Consume[] optionals(){
return optionalResults;
return optionals;
}
public void display(Stats stats){

View File

@@ -41,7 +41,7 @@ public class ConsumeModule extends BlockModule{
optionalValid = true;
boolean docons = entity.shouldConsume() && entity.productionValid();
for(Consume cons : entity.block.consumes.all()){
for(Consume cons : entity.block.consumes.all){
if(cons.isOptional()) continue;
if(docons && cons.isUpdate() && prevValid && cons.valid(entity)){
@@ -51,7 +51,7 @@ public class ConsumeModule extends BlockModule{
valid &= cons.valid(entity);
}
for(Consume cons : entity.block.consumes.optionals()){
for(Consume cons : entity.block.consumes.optionals){
if(docons && cons.isUpdate() && prevValid && cons.valid(entity)){
cons.update(entity);
}
@@ -61,7 +61,7 @@ public class ConsumeModule extends BlockModule{
}
public void trigger(){
for(Consume cons : entity.block.consumes.all()){
for(Consume cons : entity.block.consumes.all){
cons.trigger(entity);
}
}