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:
@@ -75,7 +75,7 @@ abstract class BuilderComp implements Unitc, DrawLayerFlyingc{
|
||||
if(!current.initialized && !current.breaking && Build.validPlace(team(), current.x, current.y, current.block, current.rotation)){
|
||||
boolean hasAll = !Structs.contains(current.block.requirements, i -> !core.items().has(i.item));
|
||||
|
||||
if(hasAll){
|
||||
if(hasAll || state.rules.infiniteResources){
|
||||
Build.beginPlace(team(), current.x, current.y, current.block, current.rotation);
|
||||
}else{
|
||||
current.stuck = true;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user