Fixes with random item corruptions, saving and crashes
This commit is contained in:
@@ -52,13 +52,14 @@ public class Logic extends Module {
|
|||||||
|
|
||||||
public void reset(){
|
public void reset(){
|
||||||
state.wave = 1;
|
state.wave = 1;
|
||||||
state.extrawavetime = maxwavespace;
|
state.extrawavetime = maxwavespace * state.difficulty.maxTimeScaling;
|
||||||
state.wavetime = wavespace * state.difficulty.timeScaling;
|
state.wavetime = wavespace * state.difficulty.timeScaling;
|
||||||
state.enemies = 0;
|
state.enemies = 0;
|
||||||
state.lastUpdated = -1;
|
state.lastUpdated = -1;
|
||||||
state.gameOver = false;
|
state.gameOver = false;
|
||||||
state.inventory.clearItems();
|
state.inventory.clearItems();
|
||||||
|
|
||||||
|
Timers.clear();
|
||||||
Entities.clear();
|
Entities.clear();
|
||||||
|
|
||||||
Events.fire(ResetEvent.class);
|
Events.fire(ResetEvent.class);
|
||||||
@@ -100,7 +101,7 @@ public class Logic extends Module {
|
|||||||
|
|
||||||
state.wave ++;
|
state.wave ++;
|
||||||
state.wavetime = wavespace * state.difficulty.timeScaling;
|
state.wavetime = wavespace * state.difficulty.timeScaling;
|
||||||
state.extrawavetime = maxwavespace;
|
state.extrawavetime = maxwavespace * state.difficulty.maxTimeScaling;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ public class BlastType extends EnemyType {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDeath(Enemy enemy, boolean force){
|
public void onDeath(Enemy enemy, boolean force){
|
||||||
|
if(!enemy.isDead()) explode(enemy);
|
||||||
super.onDeath(enemy, force);
|
super.onDeath(enemy, force);
|
||||||
explode(enemy);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void explode(Enemy enemy){
|
void explode(Enemy enemy){
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import io.anuke.ucore.core.Settings;
|
|||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
|
||||||
import static io.anuke.mindustry.Vars.gwt;
|
import static io.anuke.mindustry.Vars.gwt;
|
||||||
|
import static io.anuke.mindustry.Vars.logic;
|
||||||
import static io.anuke.mindustry.Vars.saveDirectory;
|
import static io.anuke.mindustry.Vars.saveDirectory;
|
||||||
|
|
||||||
public class SaveIO{
|
public class SaveIO{
|
||||||
@@ -135,6 +136,7 @@ public class SaveIO{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void load(InputStream is){
|
public static void load(InputStream is){
|
||||||
|
logic.reset();
|
||||||
|
|
||||||
DataInputStream stream;
|
DataInputStream stream;
|
||||||
|
|
||||||
|
|||||||
@@ -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.BlockPart;
|
||||||
import io.anuke.mindustry.world.blocks.types.Rock;
|
import io.anuke.mindustry.world.blocks.types.Rock;
|
||||||
import io.anuke.ucore.core.Core;
|
import io.anuke.ucore.core.Core;
|
||||||
import io.anuke.ucore.entities.Entities;
|
|
||||||
|
|
||||||
import java.io.DataInputStream;
|
import java.io.DataInputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
@@ -107,8 +106,6 @@ public class Save15 extends SaveFileVersion {
|
|||||||
|
|
||||||
//enemies
|
//enemies
|
||||||
|
|
||||||
Entities.clear();
|
|
||||||
|
|
||||||
int enemies = stream.readInt();
|
int enemies = stream.readInt();
|
||||||
|
|
||||||
Array<Enemy> enemiesToUpdate = new Array<>();
|
Array<Enemy> enemiesToUpdate = new Array<>();
|
||||||
|
|||||||
@@ -185,6 +185,8 @@ public class Conveyor extends Block{
|
|||||||
* Size is 4 bytes, or one int.
|
* Size is 4 bytes, or one int.
|
||||||
*/
|
*/
|
||||||
public static class ConveyorEntity extends TileEntity{
|
public static class ConveyorEntity extends TileEntity{
|
||||||
|
private static ItemPos writePos = new ItemPos();
|
||||||
|
|
||||||
LongArray convey = new LongArray();
|
LongArray convey = new LongArray();
|
||||||
float minitem = 1, elapsed;
|
float minitem = 1, elapsed;
|
||||||
|
|
||||||
@@ -193,7 +195,7 @@ public class Conveyor extends Block{
|
|||||||
stream.writeInt(convey.size);
|
stream.writeInt(convey.size);
|
||||||
|
|
||||||
for(int i = 0; i < convey.size; i ++){
|
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);
|
convey.ensureCapacity(amount);
|
||||||
|
|
||||||
for(int i = 0; i < amount; i ++){
|
for(int i = 0; i < amount; i ++){
|
||||||
convey.add(pos1.getValue(stream.readInt()));
|
convey.add(writePos.getValue(stream.readInt()));
|
||||||
}
|
}
|
||||||
|
|
||||||
sort(convey.items, convey.size);
|
sort(convey.items, convey.size);
|
||||||
|
|||||||
Reference in New Issue
Block a user