public static void InitialiseHashGrid(int seed) { var state = Random.state; Random.InitState(seed); hashGrid = new HexHash[HashGridSize * HashGridSize]; for (var i = 0; i < hashGrid.Length; i++) { hashGrid[i] = HexHash.Create(); } Random.state = state; // restore original state unaltered by explicit seed }
private Transform PickPrefab(HexCell cell, HexHash hash) { var options = new Dictionary <float, Transform> { [hash.A] = PickPrefab(UrbanPrefabs, cell.UrbanLevel, hash.A, hash.D), [hash.B] = PickPrefab(FarmPrefabs, cell.FarmLevel, hash.B, hash.D), [hash.C] = PickPrefab(ForestPrefabs, cell.ForestLevel, hash.C, hash.D) }; var odds = new[] { hash.A, hash.B, hash.C }; Array.Sort(odds); foreach (var o in odds) { if (options[o]) { return(options[o]); } } return(null); }