private void AddSoftBlock(Vector2 blockSlot, bool tryToStoreItem)
    {
        int     randomIndex = this.RandiRange(rng, 0, softBlockPrefabList.Count - 1);
        Spatial sb          = softBlockPrefabList[randomIndex].Instance() as Spatial;

        this.AddChildToBlockContainer(this, sb);
        emptyBlockSlotList.Remove(blockSlot);
        sb.Name        = this.CreateUniqueNodeName(sb);
        sb.Translation = ConvertBlockSlotPositionToTranslation(blockSlot);
        sb.Connect(this.GetGDSignalTreeExited(), this,
                   nameof(OnSoftBlockDestroyed), this.CreateSingleBind(sb));

        if (tryToStoreItem)
        {
            AddItemToSoftBlock(sb);
        }
    }