Exemplo n.º 1
0
        private void BuildToolPaths(GenerationTask generationTask, PrintSettings settings)
        {
            lock (active_compute_lock)
            {
                DebugUtil.Log("[ToolpathGenerator] Spawning Compute!!");
                generationTask.Compute(settings);

                if (generationTask.Success)
                {
                    CurrentGCode    = generationTask.gcode;
                    Toolpaths       = generationTask.paths;
                    LayerInfo       = generationTask.layerInfo;
                    Settings        = generationTask.PrintSettings;
                    Slices          = generationTask.SliceSet;
                    ToolpathsValid  = true;
                    ToolpathsFailed = false;

                    //CC.Objects.SetToolpaths(this);
                }
                else
                {
                    CurrentGCode    = null;
                    Toolpaths       = null;
                    LayerInfo       = null;
                    Settings        = null;
                    Slices          = null;
                    ToolpathsValid  = false;
                    ToolpathsFailed = true;
                }
            }
        }
Exemplo n.º 2
0
    IEnumerator CreateChunk()
    {
        Task GenerationTask;

        Vector3[] TempPositions = new Vector3[ChunksToGenerate.Count];
        ChunksToGenerate.CopyTo(TempPositions, 0);
        ChunksToGenerate.Clear();

        foreach (Vector3 pos in TempPositions)
        {
            if (chunks.Get(pos) == null)
            {
                generator = new WorldGeneration();
                WorldPos TempPos = new WorldPos((int)pos.x * Chunk.ChunkSize, (int)pos.y * Chunk.ChunkSize, (int)pos.z * Chunk.ChunkSize);

                yield return(Ninja.JumpToUnity);

                GameObject TempChunkObject = Instantiate(chunkPrefab) as GameObject;
                TempChunkObject.transform.SetParent(this.transform);
                TempChunkObject.name = TempPos.ToString();
                Chunk TempChunkScript = TempChunkObject.GetComponent <Chunk>();

                yield return(Ninja.JumpBack);

                TempChunkScript.world         = this;
                TempChunkScript.ChunkPosition = TempPos;
                this.StartCoroutineAsync(GenerateChunk(TempChunkScript), out GenerationTask);
                yield return(StartCoroutine(GenerationTask.Wait()));

                generator.FetchChunk(out TempChunkScript);
                chunks.Add(TempChunkScript, TempPos.ToVector3());
            }
        }
    }
Exemplo n.º 3
0
 private void Make(GenerationTask task)
 {
     Clear();
     Name      = task.name;
     Namespace = task.classNamespace;
     Make(task.dataType);
     Write(task.file);
 }