Basic schematic based generation
This commit is contained in:
@@ -405,6 +405,23 @@ public class Block extends UnlockableContent{
|
||||
return (hasItems && itemCapacity > 0);
|
||||
}
|
||||
|
||||
/** Iterate through ever grid position taken up by this block. */
|
||||
public void iterateTaken(int x, int y, Intc2 placer){
|
||||
if(isMultiblock()){
|
||||
int offsetx = -(size - 1) / 2;
|
||||
int offsety = -(size - 1) / 2;
|
||||
|
||||
for(int dx = 0; dx < size; dx++){
|
||||
for(int dy = 0; dy < size; dy++){
|
||||
placer.get(dx + offsetx + x, dy + offsety + y);
|
||||
}
|
||||
}
|
||||
|
||||
}else{
|
||||
placer.get(x, y);
|
||||
}
|
||||
}
|
||||
|
||||
/** Never use outside of the editor! */
|
||||
public TextureRegion editorIcon(){
|
||||
if(editorIcon == null) editorIcon = Core.atlas.find(name + "-icon-editor");
|
||||
|
||||
@@ -23,6 +23,7 @@ public class OverdriveProjector extends Block{
|
||||
public float speedBoostPhase = 0.75f;
|
||||
public float useTime = 400f;
|
||||
public float phaseRangeBoost = 20f;
|
||||
public boolean hasBoost = true;
|
||||
public Color baseColor = Color.valueOf("feb380");
|
||||
public Color phaseColor = Color.valueOf("ffd59e");
|
||||
|
||||
@@ -51,9 +52,12 @@ public class OverdriveProjector extends Block{
|
||||
|
||||
stats.add(BlockStat.speedIncrease, (int)(100f * speedBoost), StatUnit.percent);
|
||||
stats.add(BlockStat.range, range / tilesize, StatUnit.blocks);
|
||||
stats.add(BlockStat.productionTime, useTime / 60f, StatUnit.seconds);
|
||||
|
||||
stats.add(BlockStat.boostEffect, phaseRangeBoost / tilesize, StatUnit.blocks);
|
||||
stats.add(BlockStat.boostEffect, (int)((speedBoost + speedBoostPhase) * 100f), StatUnit.percent);
|
||||
if(hasBoost){
|
||||
stats.add(BlockStat.boostEffect, phaseRangeBoost / tilesize, StatUnit.blocks);
|
||||
stats.add(BlockStat.boostEffect, (int)((speedBoost + speedBoostPhase) * 100f), StatUnit.percent);
|
||||
}
|
||||
}
|
||||
|
||||
public class OverdriveEntity extends TileEntity{
|
||||
@@ -71,7 +75,9 @@ public class OverdriveProjector extends Block{
|
||||
heat = Mathf.lerpDelta(heat, consValid() ? 1f : 0f, 0.08f);
|
||||
charge += heat * Time.delta();
|
||||
|
||||
phaseHeat = Mathf.lerpDelta(phaseHeat, Mathf.num(cons().optionalValid()), 0.1f);
|
||||
if(hasBoost){
|
||||
phaseHeat = Mathf.lerpDelta(phaseHeat, Mathf.num(cons().optionalValid()), 0.1f);
|
||||
}
|
||||
|
||||
if(timer(timerUse, useTime) && efficiency() > 0){
|
||||
consume();
|
||||
|
||||
Reference in New Issue
Block a user