public static GameStacksMeta CreateFromGameGeneratorMeta(GameGeneratorMeta meta, PrefabsManager manager) { StackMeta startStack = new StackMeta(); for (int i = 0; i < meta.ChipIDs.Length; i++) { ChipMeta chipMeta = manager.GetChipMeta(meta.ChipIDs [i]); chipMeta.CrushWeight = meta.CrushWeights [i]; if (meta.InitFlips [i]) { chipMeta.Flip(); } startStack.Add(chipMeta); } startStack.CleanupStackForCrushedChips(0); StackMeta targetStack = startStack.Copy(); targetStack.Permute(meta.Flips); return(new GameStacksMeta(startStack, targetStack, meta.Flips.Length)); }