Fixed save files not working

This commit is contained in:
Anuken
2018-11-08 09:03:42 -05:00
parent cf50d558ba
commit 4355881fb2
9 changed files with 31 additions and 35 deletions

View File

@@ -71,6 +71,7 @@ public class BlockIndexer{
flagMap[i][j] = new ObjectSet<>(); flagMap[i][j] = new ObjectSet<>();
} }
} }
typeMap.clear(); typeMap.clear();
ores = null; ores = null;

View File

@@ -20,9 +20,9 @@ public class PowerBlocks extends BlockList implements ContentList{
}}; }};
thermalGenerator = new LiquidHeatGenerator("thermal-generator"){{ thermalGenerator = new LiquidHeatGenerator("thermal-generator"){{
maxLiquidGenerate = 0.5f; maxLiquidGenerate = 4f;
powerCapacity = 40f; powerCapacity = 40f;
powerPerLiquid = 1f; powerPerLiquid = 0.1f;
generateEffect = BlockFx.redgeneratespark; generateEffect = BlockFx.redgeneratespark;
size = 2; size = 2;
}}; }};

View File

@@ -180,11 +180,6 @@ public class Logic extends Module{
if(!state.is(State.menu)){ if(!state.is(State.menu)){
if(!Net.client() && !world.isInvalidMap()){
updateSectors();
checkGameOver();
}
if(!state.isPaused()){ if(!state.isPaused()){
Timers.update(); Timers.update();
@@ -237,6 +232,11 @@ public class Logic extends Module{
world.pathfinder.update(); world.pathfinder.update();
} }
if(!Net.client() && !world.isInvalidMap()){
updateSectors();
checkGameOver();
}
} }
if(threads.isEnabled()){ if(threads.isEnabled()){

View File

@@ -28,10 +28,7 @@ import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Timers; import io.anuke.ucore.core.Timers;
import io.anuke.ucore.entities.EntityGroup; import io.anuke.ucore.entities.EntityGroup;
import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.*;
import io.anuke.ucore.util.Geometry;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Timer;
import java.io.DataInput; import java.io.DataInput;
import java.io.DataOutput; import java.io.DataOutput;

View File

@@ -1,7 +1,6 @@
package io.anuke.mindustry.io; package io.anuke.mindustry.io;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.ObjectSet;
import io.anuke.mindustry.content.blocks.Blocks; import io.anuke.mindustry.content.blocks.Blocks;
import io.anuke.mindustry.content.blocks.StorageBlocks; import io.anuke.mindustry.content.blocks.StorageBlocks;
import io.anuke.mindustry.entities.traits.SaveTrait; import io.anuke.mindustry.entities.traits.SaveTrait;
@@ -215,7 +214,6 @@ public abstract class SaveFileVersion{
} }
public void readEntities(DataInputStream stream) throws IOException{ public void readEntities(DataInputStream stream) throws IOException{
ObjectSet<EntityGroup<?>> set = new ObjectSet<>();
byte groups = stream.readByte(); byte groups = stream.readByte();
for(int i = 0; i < groups; i++){ for(int i = 0; i < groups; i++){
@@ -224,13 +222,8 @@ public abstract class SaveFileVersion{
byte typeid = stream.readByte(); byte typeid = stream.readByte();
SaveTrait trait = (SaveTrait) TypeTrait.getTypeByID(typeid).get(); SaveTrait trait = (SaveTrait) TypeTrait.getTypeByID(typeid).get();
trait.readSave(stream); trait.readSave(stream);
set.add(trait.targetGroup());
} }
} }
for(EntityGroup<?> group : set){
group.updateEvents();
}
} }
public MappableContent[][] readContentHeader(DataInputStream stream) throws IOException{ public MappableContent[][] readContentHeader(DataInputStream stream) throws IOException{

View File

@@ -130,13 +130,16 @@ public class SettingsMenuDialog extends SettingsDialog{
sound.volumePrefs(); sound.volumePrefs();
game.screenshakePref(); game.screenshakePref();
//game.checkPref("smoothcam", true);
game.checkPref("effects", true); game.checkPref("effects", true);
if(mobile){ if(mobile){
game.checkPref("autotarget", true); game.checkPref("autotarget", true);
} }
//game.sliderPref("sensitivity", 100, 10, 300, i -> i + "%");
game.sliderPref("saveinterval", 120, 10, 5 * 120, i -> Bundles.format("setting.seconds", i)); game.sliderPref("saveinterval", 120, 10, 5 * 120, i -> Bundles.format("setting.seconds", i));
if(!mobile){
game.checkPref("crashreport", true);
}
game.pref(new Setting(){ game.pref(new Setting(){
@Override @Override
public void add(SettingsTable table){ public void add(SettingsTable table){
@@ -186,10 +189,6 @@ public class SettingsMenuDialog extends SettingsDialog{
} }
}); });
if(!mobile){
game.checkPref("crashreport", true);
}
graphics.sliderPref("fpscap", 125, 5, 125, 5, s -> (s > 120 ? Bundles.get("setting.fpscap.none") : Bundles.format("setting.fpscap.text", s))); graphics.sliderPref("fpscap", 125, 5, 125, 5, s -> (s > 120 ? Bundles.get("setting.fpscap.none") : Bundles.format("setting.fpscap.text", s)));
graphics.checkPref("multithread", mobile, threads::setEnabled); graphics.checkPref("multithread", mobile, threads::setEnabled);
@@ -197,7 +196,6 @@ public class SettingsMenuDialog extends SettingsDialog{
threads.setEnabled(true); threads.setEnabled(true);
} }
if(!mobile){ if(!mobile){
graphics.checkPref("vsync", true, b -> Gdx.graphics.setVSync(b)); graphics.checkPref("vsync", true, b -> Gdx.graphics.setVSync(b));
graphics.checkPref("fullscreen", false, b -> { graphics.checkPref("fullscreen", false, b -> {

View File

@@ -5,6 +5,7 @@ import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.type.Liquid; import io.anuke.mindustry.type.Liquid;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.consumers.ConsumeLiquidFilter; import io.anuke.mindustry.world.consumers.ConsumeLiquidFilter;
import io.anuke.mindustry.world.meta.BlockStat;
import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects;
import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Mathf;
@@ -15,9 +16,7 @@ import static io.anuke.mindustry.Vars.tilesize;
public abstract class ItemLiquidGenerator extends ItemGenerator{ public abstract class ItemLiquidGenerator extends ItemGenerator{
protected float minLiquidEfficiency = 0.2f; protected float minLiquidEfficiency = 0.2f;
protected float powerPerLiquid = 0.13f; protected float powerPerLiquid = 0.13f;
/** /**Maximum liquid used per frame.*/
* Maximum liquid used per frame.
*/
protected float maxLiquidGenerate = 0.4f; protected float maxLiquidGenerate = 0.4f;
public ItemLiquidGenerator(String name){ public ItemLiquidGenerator(String name){
@@ -28,6 +27,12 @@ public abstract class ItemLiquidGenerator extends ItemGenerator{
consumes.add(new ConsumeLiquidFilter(liquid -> getLiquidEfficiency(liquid) >= minLiquidEfficiency, 0.001f, true)).update(false).optional(true); consumes.add(new ConsumeLiquidFilter(liquid -> getLiquidEfficiency(liquid) >= minLiquidEfficiency, 0.001f, true)).update(false).optional(true);
} }
@Override
public void init(){
super.init();
stats.remove(BlockStat.liquidFuelUse);
}
@Override @Override
public void update(Tile tile){ public void update(Tile tile){
ItemGeneratorEntity entity = tile.entity(); ItemGeneratorEntity entity = tile.entity();

View File

@@ -13,19 +13,21 @@ import io.anuke.ucore.util.Mathf;
public abstract class LiquidGenerator extends PowerGenerator{ public abstract class LiquidGenerator extends PowerGenerator{
protected float minEfficiency = 0.2f; protected float minEfficiency = 0.2f;
protected float powerPerLiquid = 0.13f; protected float powerPerLiquid;
/** /**Maximum liquid used per frame.*/
* Maximum liquid used per frame. protected float maxLiquidGenerate;
*/
protected float maxLiquidGenerate = 0.4f;
protected Effect generateEffect = BlockFx.generatespark; protected Effect generateEffect = BlockFx.generatespark;
public LiquidGenerator(String name){ public LiquidGenerator(String name){
super(name); super(name);
liquidCapacity = 30f; liquidCapacity = 30f;
hasLiquids = true; hasLiquids = true;
}
consumes.add(new ConsumeLiquidFilter(liquid -> getEfficiency(liquid) >= minEfficiency, 0.001f)).update(false); @Override
public void setStats(){
consumes.add(new ConsumeLiquidFilter(liquid -> getEfficiency(liquid) >= minEfficiency, maxLiquidGenerate)).update(false);
super.setStats();
} }
@Override @Override

View File

@@ -14,7 +14,7 @@ public class LiquidHeatGenerator extends LiquidGenerator{
public void setStats(){ public void setStats(){
super.setStats(); super.setStats();
stats.add(BlockStat.basePowerGeneration, maxLiquidGenerate * powerPerLiquid * 60f * 0.4f, StatUnit.powerSecond); stats.add(BlockStat.basePowerGeneration, maxLiquidGenerate * powerPerLiquid * 60f, StatUnit.powerSecond);
} }
@Override @Override