Reconstructor fixes

This commit is contained in:
Anuken
2020-06-12 18:41:35 -04:00
parent d85a7338ea
commit 2bd3bc0e13
13 changed files with 2589 additions and 2901 deletions

View File

@@ -1763,7 +1763,6 @@ public class Blocks implements ContentList{
size = 3;
consumes.power(3f);
consumes.items(ItemStack.with(Items.silicon, 40, Items.graphite, 30));
itemCapacity = 30;
constructTime = 60f * 5f;
@@ -1781,7 +1780,6 @@ public class Blocks implements ContentList{
size = 5;
consumes.power(6f);
consumes.items(ItemStack.with(Items.silicon, 120, Items.titanium, 80));
itemCapacity = 80;
constructTime = 60f * 15f;
@@ -1799,7 +1797,6 @@ public class Blocks implements ContentList{
consumes.power(12f);
consumes.items(ItemStack.with(Items.silicon, 200, Items.titanium, 200, Items.surgealloy, 200));
consumes.liquid(Liquids.cryofluid, 1f);
itemCapacity = 300;
constructTime = 60f * 60f;
@@ -1814,7 +1811,6 @@ public class Blocks implements ContentList{
consumes.power(25f);
consumes.items(ItemStack.with(Items.silicon, 300, Items.plastanium, 300, Items.surgealloy, 300, Items.phasefabric, 250));
consumes.liquid(Liquids.cryofluid, 3f);
itemCapacity = 400;
constructTime = 60f * 60f * 3;

View File

@@ -1,8 +1,10 @@
package mindustry.world.blocks.units;
import arc.*;
import arc.graphics.g2d.*;
import arc.math.*;
import arc.util.*;
import mindustry.*;
import mindustry.content.*;
import mindustry.entities.*;
import mindustry.entities.units.*;
@@ -11,6 +13,7 @@ import mindustry.graphics.*;
import mindustry.type.*;
import mindustry.ui.*;
import mindustry.world.blocks.payloads.*;
import mindustry.world.consumers.*;
import mindustry.world.meta.*;
import static mindustry.Vars.*;
@@ -18,6 +21,7 @@ import static mindustry.Vars.*;
public class Reconstructor extends UnitBlock{
public float constructTime = 60 * 2;
public UnitType[][] upgrades = {};
public int[] capacities;
public Reconstructor(String name){
super(name);
@@ -30,6 +34,11 @@ public class Reconstructor extends UnitBlock{
Draw.rect(topRegion, req.drawx(), req.drawy());
}
@Override
public TextureRegion[] generateIcons(){
return new TextureRegion[]{Core.atlas.find(name), Core.atlas.find(name + "-out"), Core.atlas.find(name + "-top")};
}
@Override
public void setBars(){
super.setBars();
@@ -43,6 +52,19 @@ public class Reconstructor extends UnitBlock{
stats.add(BlockStat.productionTime, constructTime / 60f, StatUnit.seconds);
}
@Override
public void init(){
capacities = new int[Vars.content.items().size];
if(consumes.has(ConsumeType.item) && consumes.get(ConsumeType.item) instanceof ConsumeItems){
for(ItemStack stack : consumes.<ConsumeItems>get(ConsumeType.item).items){
capacities[stack.item.id] = Math.max(capacities[stack.item.id], stack.amount * 2);
itemCapacity = Math.max(itemCapacity, stack.amount * 2);
}
}
super.init();
}
public class ReconstructorEntity extends UnitBlockEntity{
public float fraction(){
@@ -57,6 +79,11 @@ public class Reconstructor extends UnitBlock{
&& hasUpgrade(((UnitPayload)payload).unit.type());
}
@Override
public int getMaximumAccepted(Item item){
return capacities[item.id];
}
@Override
public void draw(){
Draw.rect(region, x, y);

View File

@@ -56,14 +56,15 @@ public class UnitFactory extends UnitBlock{
@Override
public void init(){
super.init();
capacities = new int[Vars.content.items().size];
for(UnitPlan plan : plans){
for(ItemStack stack : plan.requirements){
capacities[stack.item.id] = Math.max(capacities[stack.item.id], stack.amount * 2);
itemCapacity = Math.max(itemCapacity, stack.amount * 2);
}
}
super.init();
}
@Override