Esempio n. 1
0
    public KethaneDeposits(CelestialBody CBody)
    {
        Width  = 2.0f * (float)Math.PI * (float)CBody.Radius;
        Height = Width / 2.0f;
        Name   = CBody.name;

        int   DepositCount  = (CBody.name == "Kerbin" ? 15 : 20) + (CBody.name == "Mun" ? 7 : -3);
        int   NumberOfTries = 25;
        float MinRadius     = (CBody.name == "Kerbin" ? 0.25f : 0.45f) * Width * 0.045f;
        float MaxRadius     = Width * 0.045f * (CBody.name == "Minmus" ? 0.8f : 1);

        for (int i = 0; i < DepositCount; i++)
        {
            KethaneDeposit Deposit = new KethaneDeposit();
            float          R       = UnityEngine.Random.Range(MinRadius, MaxRadius);
            for (int j = 0; j < NumberOfTries; j++)
            {
                Vector3 Pos = new Vector3(UnityEngine.Random.Range(R, Width - R), 0, UnityEngine.Random.Range(R, Height - R));
                if (IsPositionOK(Pos, R))
                {
                    Deposit.Generate(Pos, R);
                    Deposits.Add(Deposit);
                    break;
                }
            }
        }
    }
Esempio n. 2
0
    public KethaneDeposits(CelestialBody CBody)
    {
        Width = 2.0f * (float)Math.PI * (float)CBody.Radius;
        Height = Width / 2.0f;
        Name = CBody.name;

        int DepositCount = (CBody.name == "Kerbin" ? 15 : 20) + (CBody.name == "Mun" ? 7 : -3);
        int NumberOfTries = 25;
        float MinRadius = (CBody.name == "Kerbin" ? 0.25f : 0.45f) * Width * 0.045f;
        float MaxRadius = Width * 0.045f * (CBody.name == "Minmus" ? 0.8f : 1);

        for (int i = 0; i < DepositCount; i++)
        {
            KethaneDeposit Deposit = new KethaneDeposit();
            float R = UnityEngine.Random.Range(MinRadius, MaxRadius);
            for (int j = 0; j < NumberOfTries; j++)
            {
                Vector3 Pos = new Vector3(UnityEngine.Random.Range(R, Width - R), 0, UnityEngine.Random.Range(R, Height - R));
                if (IsPositionOK(Pos, R))
                {
                    Deposit.Generate(Pos, R);
                    Deposits.Add(Deposit);
                    break;
                }
            }
        }
    }