示例#1
0
    public void CreateFinalMesh()
    {
        if (meshData == null)
        {
            return;
        }
        mesh = meshData.CreateMesh(MeshData.TYPE_NORMAL);
        Mesh XplusPatchMesh = meshData.CreateMesh(MeshData.TYPE_X_NORMAL_PLUS);

        GetComponent <MeshFilter>().mesh = mesh;


        if (parent != null)
        {
            if (parent.isSplitting)
            {
                parent.childrenReady++;
                if (parent.childrenReady == 8)
                {
                    Destroy(parent.GetComponent <MeshFilter>().mesh);
                    parent.mesh          = null;
                    parent.childrenReady = 0;
                    parent.isSplitting   = false;
                    //DCManager.chunkDictionary.Remove(parent.transform.position);
                    DCManager.removeChunkFromList(this);
                    DCManager.greenLight = true;
                }
            }
        }
        else
        {
            if (manager.isSplitting)
            {
                manager.childrenReady++;
                if (manager.childrenReady == 8)
                {
                    Destroy(parent.GetComponent <MeshFilter>().mesh);
                    manager.GetComponent <MeshFilter>().mesh = null;
                    manager.childrenReady = 0;
                    manager.isSplitting   = false;
                    DCManager.greenLight  = true;
                }
            }
        }

        if (isRestoringParent)
        {
            int k = children.Count;
            for (int i = 0; i < k; i++)
            {
                Destroy(children[i].gameObject);
                //DCManager.chunkDictionary.Remove(children[i].transform.position);
                //DCManager.chunkList.Remove(children[i]);
                DCManager.removeChunkFromList(children[i]);
            }

            children.Clear();
            isRestoringParent = false;
        }
    }
示例#2
0
 public void OnMeshDataReceived(MeshData meshData)
 {
     //DCManager.chunkDictionary.Add(transform.position, this);
     this.meshData = meshData;
     DCManager.addChunkToList(this);
     //DCManager.chunkList.Add(this);
 }
示例#3
0
 protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
 {
     if (DCManager != null && DCManager.IsDesignMode)
     {
         return(DCManager.ProcessKey(keyData));
     }
     return(base.ProcessCmdKey(ref msg, keyData));
 }
示例#4
0
        public bool Close(FormClosingMode closeMode)
        {
            //сохраняем все переводы, если мы в режиме правки
            if (BaseSettings.TranslationMode && DCManager != null && DCManager.HasChanges)
            {
                if (!DCManager.SaveTranslations())
                {
                    return(false);
                }
            }

            Close();
            return(true);
        }
示例#5
0
        public virtual bool Close(FormClosingMode closeMode)
        {
            //if (LifeTimeState == LifeTimeState.Closing)
            //    return;

            if (closeMode != FormClosingMode.NoSave)
            {
                if (closeMode == FormClosingMode.SaveWithConfirmation)
                {
                    if (!BaseActionPanel.ConfirmCancel(BusinessObject, FindForm()))
                    {
                        return(false);
                    }
                    ClearLastExecutedAction();
                }
                else if (!Post())
                {
                    return(false);
                }
            }


            //сохраняем все переводы, если мы в режиме правки
            if (BaseSettings.TranslationMode && DCManager != null && DCManager.HasChanges)
            {
                if (!DCManager.SaveTranslations())
                {
                    return(false);
                }
                //ttForm.DCManager.Release();
            }
            SaveGridLayout();
            Release();

            var form = FindForm();

            if (form != null && form != BaseFormManager.MainForm)
            {
                form.Close();
                return(true);
            }

            if (ParentLayout != null)
            {
                ParentLayout.Dispose();
            }
            Dispose();
            return(true);
        }
示例#6
0
    public Chunk createCube(Chunk parentTarget, DCManager manager, float size, int lodLevel, float delta1, float delta2, float delta3, string name)
    {
        if (this == null)
        {
            return(null);
        }
        parent = parentTarget;
        if (parentTarget != null)
        {
            parentTarget.children.Add(this);
        }
        else
        {
            manager.children.Add(this);
        }

        this.edgeSize = size;
        this.manager  = manager;
        this.lodLevel = lodLevel;
        this.name     = name;

        /////////////

        GameObject o = gameObject;

        o.name = name;
        if (o.GetComponent <MeshFilter>() == null)
        {
            o.AddComponent <MeshFilter>();
        }
        if (o.GetComponent <MeshRenderer>() == null)
        {
            o.AddComponent <MeshRenderer>();
        }
        //o.AddComponent<MeshCollider>();

        o.transform.parent = manager.transform;


        transform.position = new Vector3(delta1, delta2, delta3);



        //MeshFilter mf = o.GetComponent<MeshFilter>();
        MeshRenderer mr = o.GetComponent <MeshRenderer>();

        //MeshCollider mc = o.GetComponent<MeshCollider>();

        shader            = Shader.Find("paolo/NormalColor");
        material          = new Material(shader);
        mr.sharedMaterial = material;


        //mf.sharedMesh = m;
        //m = md.CreateMesh();
        manager.meshGenerator.RequestMapData(edgeSize, manager.subdivisions, transform.position, manager.cnoise,
                                             OnMapDataReceived, edgeDictionary, edgeDictionaryOrphans
                                             );

        return(this);
    }