Exemplo n.º 1
0
    private static int RandomRotationMaskIndex(BrickSettings settings)
    {
        // get random between index 0 or index 2
        // as I saw only 2 variation of rotation can be
        // because "next brick" window has height = 2
        int randomIndex = Random.Range(0, 2) * 2;

        return(randomIndex);
    }
Exemplo n.º 2
0
    public void Apply(BrickSettings settings, int maskIndex, Material material)
    {
        _settings  = settings;
        _maskIndex = maskIndex;
        _material  = material;

        ApplyMaterial(material);

        ushort mask = settings.rotationMasks[maskIndex];

        Repaint(mask);

        base.name = settings.name;
    }
Exemplo n.º 3
0
    private Brick _GenerateNext(int xPos, int yPos)
    {
        var brick = Instantiate(brickPrefab);

        brick.transform.parent = pivot;

        brick.transform.localPosition = new Vector3(xPos, yPos, 0);
        brick.transform.localRotation = Quaternion.identity;

        BrickSettings settings  = GetRandomBrickSetting();
        int           indexMask = RandomRotationMaskIndex(settings);
        Material      material  = GetRandomMaterial();

        brick.Apply(settings, indexMask, material);

        return(brick);
    }
Exemplo n.º 4
0
    public override void OnInspectorGUI()
    {
        BrickSettings brickSettings = base.target as BrickSettings;

        int length = 4;

        brickSettings.isI = EditorGUILayout.Toggle("is I ?", brickSettings.isI);

        for (int i = 0; i < brickSettings.rotationMasks.Length; i++)
        {
            string label = string.Format("Rotation state {0}", i + 1);
            DrawRotationMatrix(label, ref brickSettings.rotationMasks[i], length);

            GUILayout.Space(10);
        }

        EditorUtility.SetDirty(target);
    }