public void BuildWorld() { _world = new GameObject("World").AddComponent <World>(); var spaceArchitect = new SpaceArchitect(); var chunkArchitect = _world.gameObject.AddComponent <ChunkArchitect>(); chunkArchitect.Initialize(new BlockPicker(), spaceArchitect); _world.Initialize(chunkArchitect, spaceArchitect); foreach (var crafter in transform.GetComponentsInChildren <SpaceCrafter>()) { if (crafter.IsValid) { foreach (var affectedChunk in crafter.GetAffectedChunks()) { var builder = _world.ChunkArchitect.GetBuilderAtPosition(affectedChunk); builder.AddSpace(crafter.Build()); } } else { _log.Warning($"{crafter} is not valid and won't be built."); } } }
private void InitializeWorld() { SceneHelper.OnSceneIsReady -= InitializeWorld; var worldGameObject = new GameObject("World"); World = worldGameObject.AddComponent <World>(); var bPicker = new BlockPicker(); var sPicker = new SpacePicker(new List <Type>() { typeof(ShaftBuilder), typeof(CorridorBuilder), typeof(MonsterDenBuilder), typeof(RoomBuilder) }); var spaceArchitect = new SpaceArchitect(sPicker); var chunkArchitect = worldGameObject.AddComponent <ChunkArchitect>(); chunkArchitect.Initialize(bPicker, spaceArchitect); World.Initialize(chunkArchitect, spaceArchitect); # if UNITY_EDITOR
public void Initialize(ChunkArchitect chunkArchitect, SpaceArchitect spaceArchitect) { ChunkArchitect = chunkArchitect; SpaceArchitect = spaceArchitect; }