public override void Load(DataReader reader, bool singleFrameLoad = false) { if (_isBusy) { return; } Debug.Log("Loading world objects..."); //! Start loading int saveVersion = reader.Version; //! if the version is too new, don't load if (saveVersion > SAVE_VERSION) { Debug.LogError("Save file is from the future, cannot be read"); return; } int count = saveVersion <= 0 ? -saveVersion : reader.ReadInt(); if (singleFrameLoad) { for (int i = 0; i < count; ++i) { int worldObjectId = saveVersion > 0 ? reader.ReadInt() : 0; int materialId = saveVersion > 0 ? reader.ReadInt() : 0; WorldObject wO = wOFactory.MakeWorldObject(worldObjectId, materialId); wO.Load(reader); } Debug.Log("World Objects load completed"); } else { StartCoroutine(LoadObjectsInternal(reader, count, saveVersion)); } }