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.");
                }
            }
        }
Exemple #2
0
    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
Exemple #3
0
 public void Initialize(ChunkArchitect chunkArchitect, SpaceArchitect spaceArchitect)
 {
     ChunkArchitect = chunkArchitect;
     SpaceArchitect = spaceArchitect;
 }