Exemplo n.º 1
0
 protected virtual void Start()
 {
     if (qdtccc == null)
     {
         qdtccc = new QuadDistanceToClosestCornerComparer();
     }
 }
Exemplo n.º 2
0
    protected override void Start()
    {
        base.Start();

        if (qdtccc == null)
        {
            qdtccc = new QuadDistanceToClosestCornerComparer();
        }

        if (tccps == null)
        {
            if (gameObject.GetComponentInChildren <TCCommonParametersSetter>() != null)
            {
                tccps = gameObject.GetComponentInChildren <TCCommonParametersSetter>();
            }
        }

        if (NPS != null)
        {
            NPS.LoadAndInit();
        }

        ReSetupQuads(); //NOTE : Force resetup on start.
        Reanimate();    //NOTE : Force uniforms setup on start.
    }
Exemplo n.º 3
0
    public Quad SetupSubQuad(QuadPosition quadPosition)
    {
        var go = new GameObject(string.Format("Quad_{0}", quadPosition));

        var mesh = GodManager.Instance.PrototypeMesh;

        mesh.bounds = new Bounds(Vector3.zero, new Vector3(PlanetRadius * 2, PlanetRadius * 2, PlanetRadius * 2));

        var quadComponent = go.AddComponent <Quad>();

        quadComponent.Planetoid = this;
        quadComponent.QuadMesh  = mesh;
        quadComponent.SetupCorners(quadPosition);

        var gc = QuadGenerationConstants.Init(TerrainMaxHeight);

        gc.planetRadius = PlanetRadius;

        quadComponent.Position            = quadPosition;
        quadComponent.generationConstants = gc;
        quadComponent.ShouldDraw          = false;

        if (qdtccc == null)
        {
            qdtccc = new QuadDistanceToClosestCornerComparer();
        }

        Quads.Add(quadComponent);
        Quads.Sort(qdtccc);

        return(quadComponent);
    }
Exemplo n.º 4
0
    public Quad SetupSubQuad(QuadPosition quadPosition)
    {
        GameObject go = new GameObject(string.Format("Quad_{0}", quadPosition));

        Mesh mesh = GetMesh(quadPosition);

        mesh.bounds = new Bounds(Vector3.zero, new Vector3(PlanetRadius * 2, PlanetRadius * 2, PlanetRadius * 2));

        Material material = MaterialHelper.CreateTemp(ColorShader, "Quad");

        Quad quadComponent = go.AddComponent <Quad>();

        quadComponent.Planetoid    = this;
        quadComponent.QuadMesh     = mesh;
        quadComponent.QuadMaterial = material;
        quadComponent.SetupCorners(quadPosition);

        if (Atmosphere != null)
        {
            Atmosphere.InitUniforms(null, quadComponent.QuadMaterial, false);
        }

        QuadGenerationConstants gc = QuadGenerationConstants.Init(TerrainMaxHeight);

        gc.planetRadius = PlanetRadius;

        quadComponent.Position            = quadPosition;
        quadComponent.generationConstants = gc;
        quadComponent.ShouldDraw          = false;

        if (qdtccc == null)
        {
            qdtccc = new QuadDistanceToClosestCornerComparer();
        }

        Quads.Add(quadComponent);
        Quads.Sort(qdtccc);

        return(quadComponent);
    }