private IEnumerator LoadGame(GameDataReader reader) { int version = reader.Version; int count = version <= 0 ? -version : reader.ReadInt(); if (version >= 3) { Random.State state = reader.ReadRandomState(); if (!reseedOnLoad) { Random.state = state; } CreationSpeed = creationSpeedSlider.value = reader.ReadFloat(); creationProgress = reader.ReadFloat(); DestructionSpeed = destructionSpeedSlider.value = reader.ReadFloat(); destructionProgress = reader.ReadFloat(); } yield return(LoadLevel(version < 2 ? 1 : reader.ReadInt())); if (version >= 3) { GameLevel.Current.Load(reader); } for (int i = 0; i < count; i++) { int factoryId = version >= 5 ? reader.ReadInt() : 0; int shapeId = version > 0 ? reader.ReadInt() : 0; int materialId = version > 0 ? reader.ReadInt() : 0; Shape instance = shapeFactories[factoryId].Get(shapeId, materialId); instance.Load(reader); } for (int i = 0; i < shapes.Count; i++) { shapes[i].ResolveShapeInstances(); } }
IEnumerator LoadGame(GameDataReader reader) { int version = reader.Version; int count = version > 0 ? reader.ReadInt() : -version; if (version >= 3) { Random.State state = reader.ReadRandomState(); if (resetOnLoad) { Random.state = state; } creationSpeedSlider.value = CreationSpeed = reader.ReadFloat(); creationProgress = reader.ReadFloat(); destructionSpeedSlider.value = DestructionSpeed = reader.ReadFloat(); destructionProgress = reader.ReadFloat(); } yield return(LoadLevel(version < 2 ? 1 : reader.ReadInt())); if (version >= 3) { GameLevel.Current.Load(reader); } var tran = transform; for (int i = 0; i < count; i++) { int factoryId = version >= 5 ? reader.ReadInt() : 0; int shapeId = version > 0 ? reader.ReadInt() : 0; int matId = version > 0 ? reader.ReadInt() : 0; Shape o = shapeFactorys[factoryId].Get(shapeId, matId); o.transform.parent = tran; o.Load(reader); shapes.Add(o); } }