Example #1
0
 public void RepositionTo(DieFinalConfiguration config)
 {
     _targetConfigurationStartTime = Time.frameCount;
     _targetPosition = new Vector3(config.X, config.Y, config.Z);
     _targetRotation = new Quaternion(config.RX, config.RY, config.RZ, config.RW);
     _sourcePosition = transform.position;
     _sourceRotation = transform.rotation;
 }
Example #2
0
    private (int[] Values, DieFinalConfiguration[] Positions) GetDiceValues(GameObject[] dice)
    {
        var values         = new List <int>();
        var finalPositions = new DieFinalConfiguration[dice.Length];

        var i = 0;

        foreach (var die in dice)
        {
            var dieScript = die.GetComponent <DieScript>();

            if (dieScript.IsPrimary)
            {
                // only use the primary dice to compute values
                // secondary dice will be used by their primaries
                values.Add(dieScript.GetValue());
            }

            if (_throwConfiguration.ReturnFinalConfiguration)
            {
                var dfc = new DieFinalConfiguration
                {
                    Id = dieScript.Id,
                    X  = die.transform.position.x,
                    Y  = die.transform.position.y,
                    Z  = die.transform.position.z,
                    RX = die.transform.rotation.x,
                    RY = die.transform.rotation.y,
                    RZ = die.transform.rotation.z,
                    RW = die.transform.rotation.w
                };

                finalPositions[i] = dfc;
            }

            ++i;
        }

        return(values.ToArray(), finalPositions);
    }