Fixes with random item corruptions, saving and crashes

This commit is contained in:
Anuken
2018-01-31 14:45:03 -05:00
parent f396190fcf
commit d2ee2c57bc
5 changed files with 10 additions and 8 deletions

View File

@@ -52,13 +52,14 @@ public class Logic extends Module {
public void reset(){
state.wave = 1;
state.extrawavetime = maxwavespace;
state.extrawavetime = maxwavespace * state.difficulty.maxTimeScaling;
state.wavetime = wavespace * state.difficulty.timeScaling;
state.enemies = 0;
state.lastUpdated = -1;
state.gameOver = false;
state.inventory.clearItems();
Timers.clear();
Entities.clear();
Events.fire(ResetEvent.class);
@@ -100,7 +101,7 @@ public class Logic extends Module {
state.wave ++;
state.wavetime = wavespace * state.difficulty.timeScaling;
state.extrawavetime = maxwavespace;
state.extrawavetime = maxwavespace * state.difficulty.maxTimeScaling;
}
@Override

View File

@@ -41,8 +41,8 @@ public class BlastType extends EnemyType {
@Override
public void onDeath(Enemy enemy, boolean force){
if(!enemy.isDead()) explode(enemy);
super.onDeath(enemy, force);
explode(enemy);
}
void explode(Enemy enemy){

View File

@@ -13,6 +13,7 @@ import io.anuke.ucore.core.Settings;
import java.io.*;
import static io.anuke.mindustry.Vars.gwt;
import static io.anuke.mindustry.Vars.logic;
import static io.anuke.mindustry.Vars.saveDirectory;
public class SaveIO{
@@ -135,6 +136,7 @@ public class SaveIO{
}
public static void load(InputStream is){
logic.reset();
DataInputStream stream;

View File

@@ -18,7 +18,6 @@ import io.anuke.mindustry.world.blocks.Blocks;
import io.anuke.mindustry.world.blocks.types.BlockPart;
import io.anuke.mindustry.world.blocks.types.Rock;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.entities.Entities;
import java.io.DataInputStream;
import java.io.DataOutputStream;
@@ -107,8 +106,6 @@ public class Save15 extends SaveFileVersion {
//enemies
Entities.clear();
int enemies = stream.readInt();
Array<Enemy> enemiesToUpdate = new Array<>();

View File

@@ -185,6 +185,8 @@ public class Conveyor extends Block{
* Size is 4 bytes, or one int.
*/
public static class ConveyorEntity extends TileEntity{
private static ItemPos writePos = new ItemPos();
LongArray convey = new LongArray();
float minitem = 1, elapsed;
@@ -193,7 +195,7 @@ public class Conveyor extends Block{
stream.writeInt(convey.size);
for(int i = 0; i < convey.size; i ++){
stream.writeInt(pos1.toInt(convey.get(i)));
stream.writeInt(writePos.toInt(convey.get(i)));
}
}
@@ -204,7 +206,7 @@ public class Conveyor extends Block{
convey.ensureCapacity(amount);
for(int i = 0; i < amount; i ++){
convey.add(pos1.getValue(stream.readInt()));
convey.add(writePos.getValue(stream.readInt()));
}
sort(convey.items, convey.size);