Pack dump into conveyor rotation
This commit is contained in:
@@ -29,6 +29,7 @@ public abstract class BlockStorage extends UnlockableContent{
|
|||||||
public int itemCapacity = 10;
|
public int itemCapacity = 10;
|
||||||
public float liquidCapacity = 10f;
|
public float liquidCapacity = 10f;
|
||||||
public float liquidPressure = 1f;
|
public float liquidPressure = 1f;
|
||||||
|
public int dumpIncrement = 1;
|
||||||
|
|
||||||
public final BlockStats stats = new BlockStats();
|
public final BlockStats stats = new BlockStats();
|
||||||
public final BlockBars bars = new BlockBars();
|
public final BlockBars bars = new BlockBars();
|
||||||
@@ -109,7 +110,7 @@ public abstract class BlockStorage extends UnlockableContent{
|
|||||||
|
|
||||||
public void tryDumpLiquid(Tile tile, Liquid liquid){
|
public void tryDumpLiquid(Tile tile, Liquid liquid){
|
||||||
Array<Tile> proximity = tile.entity.proximity();
|
Array<Tile> proximity = tile.entity.proximity();
|
||||||
int dump = retrieveDump(tile);
|
int dump = Mathf.floor(tile.rotation() * dumpIncrement);
|
||||||
|
|
||||||
for(int i = 0; i < proximity.size; i++){
|
for(int i = 0; i < proximity.size; i++){
|
||||||
incrementDump(tile, proximity.size);
|
incrementDump(tile, proximity.size);
|
||||||
@@ -197,7 +198,7 @@ public abstract class BlockStorage extends UnlockableContent{
|
|||||||
*/
|
*/
|
||||||
public void offloadNear(Tile tile, Item item){
|
public void offloadNear(Tile tile, Item item){
|
||||||
Array<Tile> proximity = tile.entity.proximity();
|
Array<Tile> proximity = tile.entity.proximity();
|
||||||
int dump = retrieveDump(tile);
|
int dump = Mathf.floor(tile.rotation() * dumpIncrement);
|
||||||
|
|
||||||
for(int i = 0; i < proximity.size; i++){
|
for(int i = 0; i < proximity.size; i++){
|
||||||
incrementDump(tile, proximity.size);
|
incrementDump(tile, proximity.size);
|
||||||
@@ -227,7 +228,7 @@ public abstract class BlockStorage extends UnlockableContent{
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
Array<Tile> proximity = entity.proximity();
|
Array<Tile> proximity = entity.proximity();
|
||||||
int dump = retrieveDump(tile);
|
int dump = Mathf.floor(tile.rotation() * dumpIncrement);
|
||||||
|
|
||||||
if(proximity.size == 0) return false;
|
if(proximity.size == 0) return false;
|
||||||
|
|
||||||
@@ -263,12 +264,8 @@ public abstract class BlockStorage extends UnlockableContent{
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected int retrieveDump(Tile tile){
|
|
||||||
return tile.rotation();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void incrementDump(Tile tile, int prox){
|
protected void incrementDump(Tile tile, int prox){
|
||||||
tile.rotation((byte)((tile.rotation() + 1) % prox));
|
tile.rotation((byte)((tile.rotation() + dumpIncrement) % (prox * dumpIncrement)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Used for dumping items. */
|
/** Used for dumping items. */
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ public class CraterConveyor extends Block implements Autotiler{
|
|||||||
idleSound = Sounds.conveyor;
|
idleSound = Sounds.conveyor;
|
||||||
idleSoundVolume = 0.004f;
|
idleSoundVolume = 0.004f;
|
||||||
unloadable = false;
|
unloadable = false;
|
||||||
|
dumpIncrement = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -91,10 +92,10 @@ public class CraterConveyor extends Block implements Autotiler{
|
|||||||
Tmp.v1.interpolate(Tmp.v2, 1f - entity.cooldown, Interpolation.linear);
|
Tmp.v1.interpolate(Tmp.v2, 1f - entity.cooldown, Interpolation.linear);
|
||||||
|
|
||||||
// fixme, cleanup
|
// fixme, cleanup
|
||||||
float a = from.rotation() * 90;
|
float a = (from.rotation()%4) * 90;
|
||||||
float b = tile.rotation() * 90;
|
float b = (tile.rotation()%4) * 90;
|
||||||
if(from.rotation() == 3 && tile.rotation() == 0) a = -1 * 90;
|
if((from.rotation()%4) == 3 && (tile.rotation()%4) == 0) a = -1 * 90;
|
||||||
if(from.rotation() == 0 && tile.rotation() == 3) a = 4 * 90;
|
if((from.rotation()%4) == 0 && (tile.rotation()%4) == 3) a = 4 * 90;
|
||||||
|
|
||||||
// crater
|
// crater
|
||||||
Draw.rect(regions[7], Tmp.v1.x, Tmp.v1.y, Mathf.lerp(a, b, Interpolation.smooth.apply(1f - Mathf.clamp(entity.cooldown * 2, 0f, 1f))));
|
Draw.rect(regions[7], Tmp.v1.x, Tmp.v1.y, Mathf.lerp(a, b, Interpolation.smooth.apply(1f - Mathf.clamp(entity.cooldown * 2, 0f, 1f))));
|
||||||
@@ -232,14 +233,11 @@ public class CraterConveyor extends Block implements Autotiler{
|
|||||||
int from = Pos.invalid;
|
int from = Pos.invalid;
|
||||||
float cooldown;
|
float cooldown;
|
||||||
|
|
||||||
byte dump;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void write(DataOutput stream) throws IOException{
|
public void write(DataOutput stream) throws IOException{
|
||||||
super.write(stream);
|
super.write(stream);
|
||||||
|
|
||||||
stream.writeInt(from);
|
stream.writeInt(from);
|
||||||
stream.writeByte(dump);
|
|
||||||
stream.writeFloat(cooldown);
|
stream.writeFloat(cooldown);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -248,7 +246,6 @@ public class CraterConveyor extends Block implements Autotiler{
|
|||||||
super.read(stream, revision);
|
super.read(stream, revision);
|
||||||
|
|
||||||
from = stream.readInt();
|
from = stream.readInt();
|
||||||
dump = stream.readByte();
|
|
||||||
cooldown = stream.readFloat();
|
cooldown = stream.readFloat();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -295,16 +292,4 @@ public class CraterConveyor extends Block implements Autotiler{
|
|||||||
|| (entity.items.total() >= getMaximumAccepted(tile, item)) // filled to capacity
|
|| (entity.items.total() >= getMaximumAccepted(tile, item)) // filled to capacity
|
||||||
|| (tile.front() == source)); // fed from the front
|
|| (tile.front() == source)); // fed from the front
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected int retrieveDump(Tile tile){
|
|
||||||
return tile.<CraterConveyorEntity>ent().dump;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void incrementDump(Tile tile, int prox){
|
|
||||||
CraterConveyorEntity entity = tile.ent();
|
|
||||||
|
|
||||||
entity.dump = (byte)((entity.dump + 1) % prox);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user