Merge branch '6.0' into crater

# Conflicts:
#	core/assets/sprites/block_colors.png
#	core/assets/sprites/sprites.atlas
#	core/assets/sprites/sprites.png
#	core/assets/sprites/sprites2.png
#	core/assets/sprites/sprites4.png
#	core/assets/sprites/sprites6.png
#	core/src/mindustry/ui/fragments/PlayerListFragment.java
This commit is contained in:
Patrick 'Quezler' Mounier
2020-04-16 17:13:18 +02:00
17 changed files with 782 additions and 702 deletions

View File

@@ -26,6 +26,7 @@ import mindustry.type.*;
import mindustry.ui.*;
import mindustry.world.*;
import mindustry.world.blocks.environment.*;
import mindustry.world.blocks.payloads.*;
import mindustry.world.blocks.power.*;
import mindustry.world.consumers.*;
import mindustry.world.meta.*;
@@ -319,6 +320,40 @@ abstract class TileComp implements Posc, Teamc, Healthc, Tilec, Timerc, QuadTree
noSleep();
}
public boolean acceptPayload(Tilec source, Payload payload){
return false;
}
public void handlePayload(Tilec source, Payload payload){
}
/**
* Tries dumping a payload.
* @param todump payload to dump.
* @return whether the payload was moved successfully
*/
public boolean dumpPayload(@NonNull Payload todump){
Array<Tilec> proximity = proximity();
int dump = rotation();
if(proximity.size == 0) return false;
for(int i = 0; i < proximity.size; i++){
Tilec other = proximity.get((i + dump) % proximity.size);
if(other.team() == team() && other.acceptPayload(this, todump)){
other.handlePayload(this, todump);
incrementDump(proximity.size);
return true;
}
incrementDump(proximity.size);
}
return false;
}
public void handleItem(Tilec source, Item item){
items.add(item, 1);
}