Configurable block build time

This commit is contained in:
Anuken
2025-02-09 11:24:34 -05:00
parent e77708b55b
commit 3246c0c39b
8 changed files with 24 additions and 20 deletions

View File

@@ -422,7 +422,7 @@ public class ConstructBlock extends Block{
this.wasConstructing = true;
this.current = block;
this.previous = previous;
this.buildCost = block.buildCost * state.rules.buildCostMultiplier;
this.buildCost = block.buildTime * state.rules.buildCostMultiplier;
this.itemsLeft = new int[block.requirements.length];
this.accumulator = new float[block.requirements.length];
this.totalAccumulator = new float[block.requirements.length];
@@ -442,7 +442,7 @@ public class ConstructBlock extends Block{
this.previous = previous;
this.progress = 1f;
this.current = previous;
this.buildCost = previous.buildCost * state.rules.buildCostMultiplier;
this.buildCost = previous.buildTime * state.rules.buildCostMultiplier;
this.itemsLeft = new int[previous.requirements.length];
this.accumulator = new float[previous.requirements.length];
this.totalAccumulator = new float[previous.requirements.length];
@@ -500,7 +500,7 @@ public class ConstructBlock extends Block{
if(previous == null) previous = Blocks.air;
if(current == null) current = Blocks.air;
buildCost = current.buildCost * state.rules.buildCostMultiplier;
buildCost = current.buildTime * state.rules.buildCostMultiplier;
}
}
}

View File

@@ -67,7 +67,7 @@ public abstract class BlockProducer extends PayloadBlock{
public void setBars(){
super.setBars();
addBar("progress", (BlockProducerBuild entity) -> new Bar("bar.progress", Pal.ammo, () -> entity.recipe() == null ? 0f : (entity.progress / entity.recipe().buildCost)));
addBar("progress", (BlockProducerBuild entity) -> new Bar("bar.progress", Pal.ammo, () -> entity.recipe() == null ? 0f : (entity.progress / entity.recipe().buildTime)));
}
public abstract class BlockProducerBuild extends PayloadBlockBuild<BuildPayload>{
@@ -108,7 +108,7 @@ public abstract class BlockProducer extends PayloadBlock{
if(produce){
progress += buildSpeed * edelta();
if(progress >= recipe.buildCost){
if(progress >= recipe.buildTime){
consume();
payload = new BuildPayload(recipe, team);
payload.block().placeEffect.at(x, y, payload.size() / tilesize);
@@ -130,14 +130,14 @@ public abstract class BlockProducer extends PayloadBlock{
var recipe = recipe();
if(recipe != null){
Drawf.shadow(x, y, recipe.size * tilesize * 2f, progress / recipe.buildCost);
Drawf.shadow(x, y, recipe.size * tilesize * 2f, progress / recipe.buildTime);
Draw.draw(Layer.blockBuilding, () -> {
Draw.color(Pal.accent);
for(TextureRegion region : recipe.getGeneratedIcons()){
Shaders.blockbuild.region = region;
Shaders.blockbuild.time = time;
Shaders.blockbuild.progress = progress / recipe.buildCost;
Shaders.blockbuild.progress = progress / recipe.buildTime;
Draw.rect(region, x, y, recipe.rotate ? rotdeg() : 0);
Draw.flush();

View File

@@ -64,7 +64,7 @@ public class BuildPayload implements Payload{
@Override
public float buildTime(){
return build.block.buildCost;
return build.block.buildTime;
}
@Override

View File

@@ -22,7 +22,7 @@ import static mindustry.Vars.*;
public class UnitCargoLoader extends Block{
public UnitType unitType = UnitTypes.manifold;
public float buildTime = 60f * 8f;
public float unitBuildTime = 60f * 8f;
public float polyStroke = 1.8f, polyRadius = 8f;
public int polySides = 6;
@@ -106,7 +106,7 @@ public class UnitCargoLoader extends Block{
readyness = Mathf.approachDelta(readyness, unit != null ? 1f : 0f, 1f / 60f);
if(unit == null && Units.canCreate(team, unitType)){
buildProgress += edelta() / buildTime;
buildProgress += edelta() / unitBuildTime;
totalProgress += edelta();
if(buildProgress >= 1f){