Linear warmup for certain blocks
This commit is contained in:
@@ -162,7 +162,7 @@ public class BeamDrill extends Block{
|
||||
if(lasers[0] == null) updateLasers();
|
||||
boolean cons = shouldConsume();
|
||||
|
||||
warmup = Mathf.lerpDelta(warmup, Mathf.num(consValid()), 0.1f);
|
||||
warmup = Mathf.approachDelta(warmup, Mathf.num(consValid()), 1f / 60f);
|
||||
lastItem = null;
|
||||
boolean multiple = false;
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ public class Drill extends Block{
|
||||
/** How many times faster the drill will progress when boosted by liquid. */
|
||||
public float liquidBoostIntensity = 1.6f;
|
||||
/** Speed at which the drill speeds up. */
|
||||
public float warmupSpeed = 0.02f;
|
||||
public float warmupSpeed = 0.015f;
|
||||
|
||||
//return variables for countOre
|
||||
protected @Nullable Item returnItem;
|
||||
@@ -266,14 +266,14 @@ public class Drill extends Block{
|
||||
speed *= efficiency(); // Drill slower when not at full power
|
||||
|
||||
lastDrillSpeed = (speed * dominantItems * warmup) / (drillTime + hardnessDrillMultiplier * dominantItem.hardness);
|
||||
warmup = Mathf.lerpDelta(warmup, speed, warmupSpeed);
|
||||
warmup = Mathf.approachDelta(warmup, speed, warmupSpeed);
|
||||
progress += delta() * dominantItems * speed * warmup;
|
||||
|
||||
if(Mathf.chanceDelta(updateEffectChance * warmup))
|
||||
updateEffect.at(x + Mathf.range(size * 2f), y + Mathf.range(size * 2f));
|
||||
}else{
|
||||
lastDrillSpeed = 0f;
|
||||
warmup = Mathf.lerpDelta(warmup, 0f, warmupSpeed);
|
||||
warmup = Mathf.approachDelta(warmup, 0f, warmupSpeed);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -27,11 +27,7 @@ public class Incinerator extends Block{
|
||||
|
||||
@Override
|
||||
public void updateTile(){
|
||||
if(consValid() && efficiency() > 0.9f){
|
||||
heat = Mathf.lerpDelta(heat, 1f, 0.04f);
|
||||
}else{
|
||||
heat = Mathf.lerpDelta(heat, 0f, 0.02f);
|
||||
}
|
||||
heat = Mathf.approachDelta(heat, consValid() && efficiency() > 0.9f ? 1f : 0f, 0.04f);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -148,7 +148,7 @@ public class WallCrafter extends Block{
|
||||
|
||||
boolean cons = shouldConsume();
|
||||
|
||||
warmup = Mathf.lerpDelta(warmup, Mathf.num(consValid()), 0.1f);
|
||||
warmup = Mathf.approachDelta(warmup, Mathf.num(consValid()), 1f / 40f);
|
||||
float dx = Geometry.d4x(rotation) * 0.5f, dy = Geometry.d4y(rotation) * 0.5f;
|
||||
|
||||
float eff = getEfficiency(tile.x, tile.y, rotation, dest -> {
|
||||
@@ -157,7 +157,7 @@ public class WallCrafter extends Block{
|
||||
updateEffect.at(
|
||||
dest.worldx() + Mathf.range(3f) - dx * tilesize,
|
||||
dest.worldy() + Mathf.range(3f) - dy * tilesize,
|
||||
Tmp.c1.set(dest.block().mapColor).mul(1f)
|
||||
dest.block().mapColor
|
||||
);
|
||||
}
|
||||
}, null);
|
||||
|
||||
Reference in New Issue
Block a user