This commit is contained in:
Anuken
2019-09-18 12:46:11 -04:00
parent c6a4bf69ee
commit 1e667946b3
3 changed files with 21 additions and 16 deletions

View File

@ -76,6 +76,8 @@ public class AndroidLauncher extends AndroidApplication{
if(code == Activity.RESULT_OK && in != null && in.getData() != null){ if(code == Activity.RESULT_OK && in != null && in.getData() != null){
Uri uri = in.getData(); Uri uri = in.getData();
if(uri.getPath().contains("(invalid)")) return;
Core.app.post(() -> Core.app.post(() -> cons.accept(new FileHandle(uri.getPath()){ Core.app.post(() -> Core.app.post(() -> cons.accept(new FileHandle(uri.getPath()){
@Override @Override
public InputStream read(){ public InputStream read(){

View File

@ -12,7 +12,6 @@ import io.anuke.mindustry.content.*;
import io.anuke.mindustry.entities.*; import io.anuke.mindustry.entities.*;
import io.anuke.mindustry.entities.Effects.*; import io.anuke.mindustry.entities.Effects.*;
import io.anuke.mindustry.entities.type.*; import io.anuke.mindustry.entities.type.*;
import io.anuke.mindustry.entities.type.Bullet;
import io.anuke.mindustry.gen.*; import io.anuke.mindustry.gen.*;
import io.anuke.mindustry.graphics.*; import io.anuke.mindustry.graphics.*;
import io.anuke.mindustry.type.*; import io.anuke.mindustry.type.*;
@ -120,26 +119,28 @@ public class MassDriver extends Block{
if( if(
tile.entity.items.total() >= minDistribute && //must shoot minimum amount of items tile.entity.items.total() >= minDistribute && //must shoot minimum amount of items
link.block().itemCapacity - link.entity.items.total() >= minDistribute && //must have minimum amount of space link.block().itemCapacity - link.entity.items.total() >= minDistribute //must have minimum amount of space
entity.reload <= 0.0001f //must have reloaded
){ ){
MassDriverEntity other = link.entity(); MassDriverEntity other = link.entity();
other.waitingShooters.add(tile); other.waitingShooters.add(tile);
//align to target location if(entity.reload <= 0.0001f){
entity.rotation = Mathf.slerpDelta(entity.rotation, targetRotation, rotateSpeed * entity.power.satisfaction);
//fire when it's the first in the queue and angles are ready. //align to target location
if(other.currentShooter() == tile && entity.rotation = Mathf.slerpDelta(entity.rotation, targetRotation, rotateSpeed * entity.power.satisfaction);
//fire when it's the first in the queue and angles are ready.
if(other.currentShooter() == tile &&
other.state == DriverState.accepting && other.state == DriverState.accepting &&
Angles.near(entity.rotation, targetRotation, 2f) && Angles.near(other.rotation, targetRotation + 180f, 2f)){ Angles.near(entity.rotation, targetRotation, 2f) && Angles.near(other.rotation, targetRotation + 180f, 2f)){
//actually fire //actually fire
fire(tile, link); fire(tile, link);
//remove waiting shooters, it's done firing //remove waiting shooters, it's done firing
other.waitingShooters.remove(tile); other.waitingShooters.remove(tile);
//set both states to idle //set both states to idle
entity.state = DriverState.idle; entity.state = DriverState.idle;
other.state = DriverState.idle; other.state = DriverState.idle;
}
} }
} }
} }

View File

@ -97,8 +97,10 @@ public class CoreBlock extends StorageBlock{
entity.storageCapacity += other.block().itemCapacity + other.entity.proximity().sum(e -> isContainer(e) ? e.block().itemCapacity : 0); entity.storageCapacity += other.block().itemCapacity + other.entity.proximity().sum(e -> isContainer(e) ? e.block().itemCapacity : 0);
} }
for(Item item : content.items()){ if(!world.isGenerating()){
entity.items.set(item, Math.min(entity.items.get(item), entity.storageCapacity)); for(Item item : content.items()){
entity.items.set(item, Math.min(entity.items.get(item), entity.storageCapacity));
}
} }
for(Tile other : state.teams.get(tile.getTeam()).cores){ for(Tile other : state.teams.get(tile.getTeam()).cores){