Ejemplo n.º 1
0
        // ==== maintenance ===========================================================================================
        public void Awake()
        {
            // chunk initialization (load/generate data, set position, etc.)

            // Set variables
            ChunkIndex = new Index (transform.position);
            SideLength = Engine.ChunkSideLength;
            SquaredSideLength = SideLength * SideLength;
            NeighborChunks = new Chunk [6]; // 0 = up, 1 = down, 2 = right, 3 = left, 4 = forward, 5 = back
            MeshCreator = GetComponent<ChunkMeshCreator>();
            Fresh = true;

            // Register chunk
            ChunkManager.RegisterChunk (this);

            // Clear the voxel data
            VoxelData = new ushort[SideLength*SideLength*SideLength];

            // Set actual position
            transform.position = ChunkIndex.ToVector3() * SideLength;

            // multiply by scale
            transform.position = new Vector3 (transform.position.x * transform.localScale.x, transform.position.y * transform.localScale.y, transform.position.z * transform.localScale.z);

            // Grab voxel data
            if (Engine.EnableMultiplayer && !Network.isServer) {
            StartCoroutine (RequestVoxelData());	// if multiplayer, get data from server
            }
            else if (Engine.SaveVoxelData && TryLoadVoxelData() == true ) {
            // data is loaded through TryLoadVoxelData()
            }
            else {
            GenerateVoxelData();
            }
        }
Ejemplo n.º 2
0
        // ==== maintenance ===========================================================================================

        public void Awake()
        { // chunk initialization (load/generate data, set position, etc.)
            // Set variables
            ChunkIndex        = new Index(transform.position);
            SideLength        = Engine.ChunkSideLength;
            SquaredSideLength = SideLength * SideLength;
            NeighborChunks    = new Chunk[6]; // 0 = up, 1 = down, 2 = right, 3 = left, 4 = forward, 5 = back
            MeshCreator       = GetComponent <ChunkMeshCreator>();
            Fresh             = true;

            // Register chunk
            ChunkManager.RegisterChunk(this);

            LogicBlocks = new Dictionary <Index, GameObject>(); // Logic blocks array

            // Clear the voxel data
            VoxelData = new ushort[SideLength * SideLength * SideLength];

            // Set actual position
            transform.position = ChunkIndex.ToVector3() * SideLength;

            // multiply by scale
            transform.position = new Vector3(transform.position.x * transform.localScale.x, transform.position.y * transform.localScale.y, transform.position.z * transform.localScale.z);

            // Grab voxel data
            if (Engine.EnableMultiplayer && !Network.isServer)
            {
                StartCoroutine(RequestVoxelData()); // if multiplayer, get data from server
            }
            else if (Engine.EnableInternetplayer)
            {
            }
            else if (Engine.SaveVoxelData && TryLoadVoxelData() == true)
            {
                // data is loaded through TryLoadVoxelData()
            }
            else
            {
                GenerateVoxelData();
            }
        }
Ejemplo n.º 3
0
        // ==== maintenance ===========================================================================================

        public void Awake()
        {
            chunkIndex = new Index(transform.position);

            Size = Engine.ChunkSize;

            neighborChunks = new Chunk[6]; // 0 = up, 1 = down, 2 = right, 3 = left, 4 = forward, 5 = back
            MeshCreator    = GetComponent <ChunkMeshCreator>();
            fresh          = true;

            // Register chunk
            ChunkManager.RegisterChunk(this);

            // Clear the voxel data
            voxelData = new ushort[sizeX * sizeY * sizeZ];

            // Set actual position
            Vector3 idx = chunkIndex.ToVector3();
            Vector3 s   = transform.localScale;

            transform.position = new Vector3(
                idx.x * sizeX * s.x,
                idx.y * sizeY * s.y,
                idx.z * sizeZ * s.z);

            // Grab voxel data
            if (Engine.EnableMultiplayer && !Network.isServer)
            {
                StartCoroutine(RequestVoxelData()); // if multiplayer, get data from server
            }
            else if (Engine.SaveVoxelData && TryLoadVoxelData())
            {
                // data is loaded through TryLoadVoxelData()
            }
            else
            {
                GenerateVoxelData();
            }
        }