diff --git a/miner.lua b/miner.lua index 22c14a8..77dd6fa 100644 --- a/miner.lua +++ b/miner.lua @@ -30,7 +30,7 @@ local function saveMinerState() mission = miner.mission, started = miner.started, finished = miner.finished, - lastPositionState = miner.lastPositionState, + lastPositionState = miner.lastPositionState and textutils.serializeJSON(miner.lastPositionState), targetY = miner.targetY } @@ -40,7 +40,7 @@ local function saveMinerState() error('saveMinerState: cannot open .minerstate file!') end - file.write(textutils.serialize(minerState)) + file.write(textutils.serializeJSON(minerState)) file.close() end @@ -54,14 +54,20 @@ local function loadMinerState() local serializedMinerState = file.readAll() file.close() - local minerState = unserialize(serializedMinerState) + local minerState = textutils.unserializeJSON(serializedMinerState) + + local lastPositionState = nil + + if minerState.lastPositionState then + lastPositionState = minerState.lastPositionState + end miner = { robot = robotApi.create(minerState.robotState), mission = minerState.mission, started = minerState.started, finished = minerState.finished, - lastPositionState = minerState.lastPositionState, + lastPositionState = lastPositionState, targetY = minerState.targetY } end