Esempio n. 1
0
    private static BlockParticle CreateBlockParticle(Vector3 position)
    {
        if (!ringBufferInitialized)
        {
            InitializeRingBuffer();
        }
        BlockParticle particle = ringBuffer[ringBufferPosition];

        particle.gameObject.SetActive(true);
        particle.transform.position = position;
        particle.Start();

        ringBufferPosition = (ringBufferPosition + 1) % ringBufferSize;
        return(particle);
    }
Esempio n. 2
0
    public static void CreateBlockParticle(BlockSpacePosition blockPosition, Block block)
    {
        if (block.IsNotActive())
        {
            return;
        }

        Vector3 position;

        position.x = blockPosition.x - 0.5f;
        position.y = blockPosition.y;
        position.z = blockPosition.z - 0.5f;
        BlockParticle createdBlockParticle = CreateBlockParticle(position);

        createdBlockParticle.UpdateTexture(blockPosition, block);
    }
Esempio n. 3
0
    private static void InitializeRingBuffer()
    {
        if (ringBufferInitialized)
        {
            return;
        }

        for (int i = 0; i < ringBufferSize; i++)
        {
            BlockParticle particle = (BlockParticle)Instantiate(World.Instance().blockParticle, Vector3.zero, Quaternion.identity);
            particle.Initialize();
            ringBuffer[i] = particle;
        }

        ringBufferPosition    = 0;
        ringBufferInitialized = true;
    }