Class cleanup

This commit is contained in:
Anuken
2019-03-30 23:23:57 -04:00
parent 211dab1297
commit a6c9bd3182
9 changed files with 91 additions and 189 deletions
@@ -33,6 +33,7 @@ import io.anuke.mindustry.world.blocks.units.UnitFactory;
import io.anuke.mindustry.world.consumers.ConsumeItemFilter; import io.anuke.mindustry.world.consumers.ConsumeItemFilter;
import io.anuke.mindustry.world.consumers.ConsumeLiquidFilter; import io.anuke.mindustry.world.consumers.ConsumeLiquidFilter;
import io.anuke.mindustry.world.meta.Attribute; import io.anuke.mindustry.world.meta.Attribute;
import io.anuke.mindustry.world.modules.LiquidModule;
import static io.anuke.mindustry.Vars.state; import static io.anuke.mindustry.Vars.state;
import static io.anuke.mindustry.Vars.world; import static io.anuke.mindustry.Vars.world;
@@ -426,7 +427,7 @@ public class Blocks implements ContentList{
consumes.power(0.60f); consumes.power(0.60f);
}}; }};
plastaniumCompressor = new PlastaniumCompressor("plastanium-compressor"){{ plastaniumCompressor = new GenericCrafter("plastanium-compressor"){{
requirements(Category.crafting, ItemStack.with(Items.silicon, 160, Items.lead, 230, Items.graphite, 120, Items.titanium, 160)); requirements(Category.crafting, ItemStack.with(Items.silicon, 160, Items.lead, 230, Items.graphite, 120, Items.titanium, 160));
hasItems = true; hasItems = true;
liquidCapacity = 60f; liquidCapacity = 60f;
@@ -441,6 +442,18 @@ public class Blocks implements ContentList{
consumes.liquid(Liquids.oil, 0.25f); consumes.liquid(Liquids.oil, 0.25f);
consumes.power(3f); consumes.power(3f);
consumes.item(Items.titanium, 2); consumes.item(Items.titanium, 2);
int topRegion = reg("-top");
drawer = tile -> {
super.draw(tile);
GenericCrafterEntity entity = tile.entity();
Draw.alpha(Mathf.absin(entity.totalProgress, 3f, 0.9f) * entity.warmup);
Draw.rect(reg(topRegion), tile.drawx(), tile.drawy());
Draw.reset();
};
}}; }};
phaseWeaver = new GenericCrafter("phase-weaver"){{ phaseWeaver = new GenericCrafter("phase-weaver"){{
@@ -453,7 +466,7 @@ public class Blocks implements ContentList{
consumes.items(new ItemStack(Items.thorium, 4), new ItemStack(Items.sand, 10)); consumes.items(new ItemStack(Items.thorium, 4), new ItemStack(Items.sand, 10));
consumes.power(5f); consumes.power(5f);
int bottomRegion = addr(name + "-bottom"), weaveRegion = addr(name + "-weave"); int bottomRegion = reg("-bottom"), weaveRegion = reg("-weave");
drawer = tile -> { drawer = tile -> {
GenericCrafterEntity entity = tile.entity(); GenericCrafterEntity entity = tile.entity();
@@ -499,7 +512,7 @@ public class Blocks implements ContentList{
consumes.items(new ItemStack(Items.titanium, 2), new ItemStack(Items.lead, 4), new ItemStack(Items.silicon, 3), new ItemStack(Items.copper, 3)); consumes.items(new ItemStack(Items.titanium, 2), new ItemStack(Items.lead, 4), new ItemStack(Items.silicon, 3), new ItemStack(Items.copper, 3));
}}; }};
cryofluidMixer = new LiquidMixer("cryofluidmixer"){{ cryofluidMixer = new GenericCrafter("cryofluidmixer"){{
requirements(Category.crafting, ItemStack.with(Items.lead, 130, Items.silicon, 80, Items.thorium, 90)); requirements(Category.crafting, ItemStack.with(Items.lead, 130, Items.silicon, 80, Items.thorium, 90));
outputLiquid = new LiquidStack(Liquids.cryofluid, 0.3f); outputLiquid = new LiquidStack(Liquids.cryofluid, 0.3f);
craftTime = 5f; craftTime = 5f;
@@ -514,6 +527,27 @@ public class Blocks implements ContentList{
consumes.power(1f); consumes.power(1f);
consumes.item(Items.titanium); consumes.item(Items.titanium);
consumes.liquid(Liquids.water, 0.3f); consumes.liquid(Liquids.water, 0.3f);
int liquidRegion = reg("-liquid"), topRegion = reg("-top"), bottomRegion = reg("-bottom");
drawIcons = () -> new TextureRegion[]{Core.atlas.find(name + "-bottom"), Core.atlas.find(name + "-top")};
drawer = tile -> {
LiquidModule mod = tile.entity.liquids;
int rotation = rotate ? tile.getRotation() * 90 : 0;
Draw.rect(reg(bottomRegion), tile.drawx(), tile.drawy(), rotation);
if(mod.total() > 0.001f){
Draw.color(outputLiquid.liquid.color);
Draw.alpha(mod.get(outputLiquid.liquid) / liquidCapacity);
Draw.rect(reg(liquidRegion), tile.drawx(), tile.drawy(), rotation);
Draw.color();
}
Draw.rect(reg(topRegion), tile.drawx(), tile.drawy(), rotation);
};
}}; }};
blastMixer = new GenericCrafter("blast-mixer"){{ blastMixer = new GenericCrafter("blast-mixer"){{
@@ -584,7 +618,7 @@ public class Blocks implements ContentList{
consumes.liquid(Liquids.water, 0.15f); consumes.liquid(Liquids.water, 0.15f);
}}; }};
sporePress = new Compressor("spore-press"){{ sporePress = new GenericCrafter("spore-press"){{
requirements(Category.crafting, ItemStack.with(Items.lead, 70, Items.silicon, 60)); requirements(Category.crafting, ItemStack.with(Items.lead, 70, Items.silicon, 60));
liquidCapacity = 60f; liquidCapacity = 60f;
craftTime = 20f; craftTime = 20f;
@@ -595,9 +629,28 @@ public class Blocks implements ContentList{
consumes.item(Items.sporePod, 1); consumes.item(Items.sporePod, 1);
consumes.power(0.60f); consumes.power(0.60f);
int[] frameRegions = new int[3];
for(int i = 0; i < 3; i++){
frameRegions[i] = reg("-frame" + i);
}
int liquidRegion = reg("-liquid");
int topRegion =reg("-top");
drawer = tile -> {
GenericCrafterEntity entity = tile.entity();
Draw.rect(region, tile.drawx(), tile.drawy());
Draw.rect(reg(frameRegions[(int) Mathf.absin(entity.totalProgress, 5f, 2.999f)]), tile.drawx(), tile.drawy());
Draw.color(Color.CLEAR, tile.entity.liquids.current().color, tile.entity.liquids.total() / liquidCapacity);
Draw.rect(reg(liquidRegion), tile.drawx(), tile.drawy());
Draw.color();
Draw.rect(reg(topRegion), tile.drawx(), tile.drawy());
};
}}; }};
pulverizer = new Pulverizer("pulverizer"){{ pulverizer = new GenericCrafter("pulverizer"){{
requirements(Category.crafting, ItemStack.with(Items.copper, 60, Items.lead, 50)); requirements(Category.crafting, ItemStack.with(Items.copper, 60, Items.lead, 50));
outputItem = new ItemStack(Items.sand, 1); outputItem = new ItemStack(Items.sand, 1);
craftEffect = Fx.pulverize; craftEffect = Fx.pulverize;
@@ -607,6 +660,15 @@ public class Blocks implements ContentList{
consumes.item(Items.scrap, 1); consumes.item(Items.scrap, 1);
consumes.power(0.50f); consumes.power(0.50f);
int rotatorRegion = reg("-rotator");
drawer = tile -> {
GenericCrafterEntity entity = tile.entity();
Draw.rect(region, tile.drawx(), tile.drawy());
Draw.rect(reg(rotatorRegion), tile.drawx(), tile.drawy(), entity.totalProgress * 2f);
};
}}; }};
incinerator = new Incinerator("incinerator"){{ incinerator = new Incinerator("incinerator"){{
+3 -3
View File
@@ -334,9 +334,9 @@ public class Block extends BlockStorage{
} }
} }
/**Adds a region by name to be loaded. Returns an ID to looks this region up by in {@link #reg(int)}.*/ /**Adds a region by name to be loaded, with the final name "{name}-suffix". Returns an ID to looks this region up by in {@link #reg(int)}.*/
protected int addr(String name){ protected int reg(String suffix){
cacheRegionStrings.add(name); cacheRegionStrings.add(name + suffix);
return cacheRegionStrings.size - 1; return cacheRegionStrings.size - 1;
} }
@@ -1,48 +0,0 @@
package io.anuke.mindustry.world.blocks.production;
import io.anuke.arc.Core;
import io.anuke.arc.graphics.Color;
import io.anuke.arc.graphics.g2d.Draw;
import io.anuke.arc.graphics.g2d.TextureRegion;
import io.anuke.arc.math.Mathf;
import io.anuke.mindustry.world.Tile;
public class Compressor extends GenericCrafter{
protected TextureRegion liquidRegion, topRegion;
protected TextureRegion[] frameRegions;
public Compressor(String name){
super(name);
hasLiquids = true;
}
@Override
public void load(){
super.load();
frameRegions = new TextureRegion[3];
for(int i = 0; i < 3; i++){
frameRegions[i] = Core.atlas.find(name + "-frame" + i);
}
liquidRegion = Core.atlas.find(name + "-liquid");
topRegion = Core.atlas.find(name + "-top");
}
@Override
public void draw(Tile tile){
GenericCrafterEntity entity = tile.entity();
Draw.rect(region, tile.drawx(), tile.drawy());
Draw.rect(frameRegions[(int) Mathf.absin(entity.totalProgress, 5f, 2.999f)], tile.drawx(), tile.drawy());
Draw.color(Color.CLEAR, tile.entity.liquids.current().color, tile.entity.liquids.total() / liquidCapacity);
Draw.rect(liquidRegion, tile.drawx(), tile.drawy());
Draw.color();
Draw.rect(topRegion, tile.drawx(), tile.drawy());
}
@Override
public TextureRegion[] generateIcons(){
return new TextureRegion[]{Core.atlas.find(name), Core.atlas.find(name + "-top")};
}
}
@@ -33,7 +33,6 @@ public class Drill extends Block{
protected final static float hardnessDrillMultiplier = 50f; protected final static float hardnessDrillMultiplier = 50f;
protected final int timerDump = timers++; protected final int timerDump = timers++;
protected final Array<Tile> drawTiles = new Array<>();
protected final ObjectIntMap<Item> oreCount = new ObjectIntMap<>(); protected final ObjectIntMap<Item> oreCount = new ObjectIntMap<>();
protected final Array<Item> itemArray = new Array<>(); protected final Array<Item> itemArray = new Array<>();
@@ -270,14 +269,14 @@ public class Drill extends Block{
} }
public static class DrillEntity extends TileEntity{ public static class DrillEntity extends TileEntity{
public float progress; float progress;
public int index; int index;
public float warmup; float warmup;
public float drillTime; float drillTime;
public float lastDrillSpeed; float lastDrillSpeed;
public int dominantItems; int dominantItems;
public Item dominantItem; Item dominantItem;
} }
} }
@@ -1,6 +1,8 @@
package io.anuke.mindustry.world.blocks.production; package io.anuke.mindustry.world.blocks.production;
import io.anuke.arc.function.Consumer; import io.anuke.arc.function.Consumer;
import io.anuke.arc.function.Supplier;
import io.anuke.arc.graphics.g2d.TextureRegion;
import io.anuke.arc.math.Mathf; import io.anuke.arc.math.Mathf;
import io.anuke.arc.util.Time; import io.anuke.arc.util.Time;
import io.anuke.mindustry.content.Fx; import io.anuke.mindustry.content.Fx;
@@ -31,6 +33,7 @@ public class GenericCrafter extends Block{
protected float updateEffectChance = 0.04f; protected float updateEffectChance = 0.04f;
protected Consumer<Tile> drawer = null; protected Consumer<Tile> drawer = null;
protected Supplier<TextureRegion[]> drawIcons = null;
public GenericCrafter(String name){ public GenericCrafter(String name){
super(name); super(name);
@@ -62,6 +65,12 @@ public class GenericCrafter extends Block{
} }
} }
@Override
public TextureRegion[] generateIcons(){
return drawIcons == null ? super.generateIcons() : drawIcons.get();
}
@Override @Override
public void update(Tile tile){ public void update(Tile tile){
GenericCrafterEntity entity = tile.entity(); GenericCrafterEntity entity = tile.entity();
@@ -122,6 +131,8 @@ public class GenericCrafter extends Block{
return itemCapacity; return itemCapacity;
} }
public static class GenericCrafterEntity extends TileEntity{ public static class GenericCrafterEntity extends TileEntity{
public float progress; public float progress;
public float totalProgress; public float totalProgress;
@@ -1,47 +0,0 @@
package io.anuke.mindustry.world.blocks.production;
import io.anuke.arc.Core;
import io.anuke.arc.graphics.g2d.Draw;
import io.anuke.arc.graphics.g2d.TextureRegion;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.modules.LiquidModule;
public class LiquidMixer extends GenericCrafter{
protected TextureRegion liquidRegion, bottomRegion, topRegion;
public LiquidMixer(String name){
super(name);
}
@Override
public void load(){
super.load();
liquidRegion = Core.atlas.find(name + "-liquid");
topRegion = Core.atlas.find(name + "-top");
bottomRegion = Core.atlas.find(name + "-bottom");
}
@Override
public TextureRegion[] generateIcons(){
return new TextureRegion[]{Core.atlas.find(name + "-bottom"), Core.atlas.find(name + "-top")};
}
@Override
public void draw(Tile tile){
LiquidModule mod = tile.entity.liquids;
int rotation = rotate ? tile.getRotation() * 90 : 0;
Draw.rect(bottomRegion, tile.drawx(), tile.drawy(), rotation);
if(mod.total() > 0.001f){
Draw.color(outputLiquid.liquid.color);
Draw.alpha(mod.get(outputLiquid.liquid) / liquidCapacity);
Draw.rect(liquidRegion, tile.drawx(), tile.drawy(), rotation);
Draw.color();
}
Draw.rect(topRegion, tile.drawx(), tile.drawy(), rotation);
}
}
@@ -1,33 +0,0 @@
package io.anuke.mindustry.world.blocks.production;
import io.anuke.arc.Core;
import io.anuke.arc.graphics.g2d.TextureRegion;
import io.anuke.mindustry.world.Tile;
import io.anuke.arc.graphics.g2d.Draw;
import io.anuke.arc.math.Mathf;
public class PlastaniumCompressor extends GenericCrafter{
protected TextureRegion topRegion;
public PlastaniumCompressor(String name){
super(name);
}
@Override
public void load(){
super.load();
topRegion = Core.atlas.find(name + "-top");
}
@Override
public void draw(Tile tile){
super.draw(tile);
GenericCrafterEntity entity = tile.entity();
Draw.alpha(Mathf.absin(entity.totalProgress, 3f, 0.9f) * entity.warmup);
Draw.rect(topRegion, tile.drawx(), tile.drawy());
Draw.reset();
}
}
@@ -1,35 +0,0 @@
package io.anuke.mindustry.world.blocks.production;
import io.anuke.arc.Core;
import io.anuke.arc.graphics.g2d.TextureRegion;
import io.anuke.mindustry.world.Tile;
import io.anuke.arc.graphics.g2d.Draw;
public class Pulverizer extends GenericCrafter{
protected TextureRegion rotatorRegion;
public Pulverizer(String name){
super(name);
hasItems = true;
}
@Override
public void load(){
super.load();
rotatorRegion = Core.atlas.find(name + "-rotator");
}
@Override
public void draw(Tile tile){
GenericCrafterEntity entity = tile.entity();
Draw.rect(region, tile.drawx(), tile.drawy());
Draw.rect(rotatorRegion, tile.drawx(), tile.drawy(), entity.totalProgress * 2f);
}
@Override
public TextureRegion[] generateIcons(){
return new TextureRegion[]{Core.atlas.find(name), Core.atlas.find(name + "-rotator")};
}
}
@@ -1,10 +1,8 @@
package io.anuke.mindustry.world.blocks.production; package io.anuke.mindustry.world.blocks.production;
import io.anuke.arc.Core;
import io.anuke.arc.graphics.Color; import io.anuke.arc.graphics.Color;
import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.g2d.Draw;
import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.graphics.g2d.Lines;
import io.anuke.arc.graphics.g2d.TextureRegion;
import io.anuke.arc.math.Mathf; import io.anuke.arc.math.Mathf;
import io.anuke.mindustry.entities.type.TileEntity; import io.anuke.mindustry.entities.type.TileEntity;
import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Item;
@@ -30,7 +28,7 @@ public class Separator extends Block{
protected float spinnerSpeed = 2f; protected float spinnerSpeed = 2f;
protected Color color = Color.valueOf("858585"); protected Color color = Color.valueOf("858585");
protected TextureRegion liquidRegion; protected int liquidRegion;
public Separator(String name){ public Separator(String name){
super(name); super(name);
@@ -38,13 +36,8 @@ public class Separator extends Block{
solid = true; solid = true;
hasItems = true; hasItems = true;
hasLiquids = true; hasLiquids = true;
}
@Override liquidRegion = reg("liquid");
public void load(){
super.load();
liquidRegion = Core.atlas.find(name + "-liquid");
} }
@Override @Override
@@ -67,7 +60,7 @@ public class Separator extends Block{
Draw.color(tile.entity.liquids.current().color); Draw.color(tile.entity.liquids.current().color);
Draw.alpha(tile.entity.liquids.total() / liquidCapacity); Draw.alpha(tile.entity.liquids.total() / liquidCapacity);
Draw.rect(liquidRegion, tile.drawx(), tile.drawy()); Draw.rect(reg(liquidRegion), tile.drawx(), tile.drawy());
Draw.color(color); Draw.color(color);
Lines.stroke(spinnerThickness); Lines.stroke(spinnerThickness);