protected void Start()
    {
        uint num1 = SeedEx.Seed(((Component)this).get_transform().get_position(), World.Seed + this.Seed);

        if ((double)SeedRandom.Value(ref num1) > (double)this.Probability)
        {
            for (int index = 0; index < this.Candidates.Length; ++index)
            {
                GameManager.Destroy(this.Candidates[index], 0.0f);
            }
            GameManager.Destroy((Component)this, 0.0f);
        }
        else
        {
            int num2 = SeedRandom.Range(num1, 0, ((Component)this).get_transform().get_childCount());
            for (int index = 0; index < this.Candidates.Length; ++index)
            {
                GameObject candidate = this.Candidates[index];
                if (index == num2)
                {
                    candidate.SetActive(true);
                }
                else
                {
                    GameManager.Destroy(candidate, 0.0f);
                }
            }
            GameManager.Destroy((Component)this, 0.0f);
        }
    }
Ejemplo n.º 2
0
    public override void Apply(ref Vector3 pos, ref Quaternion rot, ref Vector3 scale)
    {
        uint  num1 = SeedEx.Seed(pos, World.Seed) + 2U;
        float num2 = SeedRandom.Range(ref num1, (float)this.MinRotation.x, (float)this.MaxRotation.x);
        float num3 = SeedRandom.Range(ref num1, (float)this.MinRotation.y, (float)this.MaxRotation.y);
        float num4 = SeedRandom.Range(ref num1, (float)this.MinRotation.z, (float)this.MaxRotation.z);

        rot = Quaternion.op_Multiply(Quaternion.Euler(num2, num3, num4), rot);
    }
Ejemplo n.º 3
0
    protected void Start()
    {
        uint num = SeedEx.Seed(((Component)this).get_transform().get_position(), World.Seed + this.Seed);

        if ((double)SeedRandom.Value(ref num) > (double)this.Probability)
        {
            GameManager.Destroy((Component)this, 0.0f);
        }
        else
        {
            GameManager.Destroy(((Component)this).get_gameObject(), 0.0f);
        }
    }
Ejemplo n.º 4
0
    protected void Start()
    {
        uint seed = SeedEx.Seed(((Component)this).get_transform().get_position(), World.Seed + this.Seed);

        if ((double)SeedRandom.Value(ref seed) > (double)this.Probability)
        {
            GameManager.Destroy((Component)this, 0.0f);
        }
        else
        {
            Prefab.LoadRandom("assets/bundled/prefabs/autospawn/" + this.ResourceFolder, ref seed, (GameManager)null, (PrefabAttribute.Library)null, true).Spawn(((Component)this).get_transform());
            GameManager.Destroy((Component)this, 0.0f);
        }
    }
    public ResourceDepositManager.ResourceDeposit CreateFromPosition(Vector3 pos)
    {
        Vector2i indexFrom = ResourceDepositManager.GetIndexFrom(pos);

        Random.State state = Random.get_state();
        Random.InitState((int)SeedEx.Seed(new Vector2((float)indexFrom.x, (float)indexFrom.y), World.Seed + World.Salt));
        ResourceDepositManager.ResourceDeposit resourceDeposit = new ResourceDepositManager.ResourceDeposit();
        resourceDeposit.origin = new Vector3((float)(indexFrom.x * 20), 0.0f, (float)(indexFrom.y * 20));
        if ((double)Random.Range(0.0f, 1f) < 0.5)
        {
            resourceDeposit.Add(ItemManager.FindItemDefinition("stones"), 1f, 100, 1f, ResourceDepositManager.ResourceDeposit.surveySpawnType.ITEM, false);
        }
        else if (true)
        {
            resourceDeposit.Add(ItemManager.FindItemDefinition("stones"), 1f, Random.Range(30000, 100000), Random.Range(0.3f, 0.5f), ResourceDepositManager.ResourceDeposit.surveySpawnType.ITEM, false);
            if ((double)Random.Range(0.0f, 1f) >= 1.0 - (!World.Procedural ? 0.100000001490116 : ((double)TerrainMeta.BiomeMap.GetBiome(pos, 2) > 0.5 ? 1.0 : 0.0) * 0.25))
            {
                resourceDeposit.Add(ItemManager.FindItemDefinition("metal.ore"), 1f, Random.Range(10000, 100000), Random.Range(2f, 4f), ResourceDepositManager.ResourceDeposit.surveySpawnType.ITEM, false);
            }
            if ((double)Random.Range(0.0f, 1f) >= 1.0 - (!World.Procedural ? 0.100000001490116 : ((double)TerrainMeta.BiomeMap.GetBiome(pos, 1) > 0.5 ? 1.0 : 0.0) * (0.25 + 0.25 * (TerrainMeta.TopologyMap.GetTopology(pos, 8) ? 1.0 : 0.0) + 0.25 * (TerrainMeta.TopologyMap.GetTopology(pos, 1) ? 1.0 : 0.0))))
            {
                resourceDeposit.Add(ItemManager.FindItemDefinition("sulfur.ore"), 1f, Random.Range(10000, 100000), Random.Range(4f, 4f), ResourceDepositManager.ResourceDeposit.surveySpawnType.ITEM, false);
            }
            float num = 0.0f;
            if (World.Procedural)
            {
                if ((double)TerrainMeta.BiomeMap.GetBiome(pos, 8) > 0.5 || (double)TerrainMeta.BiomeMap.GetBiome(pos, 4) > 0.5)
                {
                    num += 0.25f;
                }
            }
            else
            {
                num += 0.15f;
            }
            if ((double)Random.Range(0.0f, 1f) >= 1.0 - (double)num)
            {
                resourceDeposit.Add(ItemManager.FindItemDefinition("hq.metal.ore"), 1f, Random.Range(5000, 10000), Random.Range(30f, 50f), ResourceDepositManager.ResourceDeposit.surveySpawnType.ITEM, false);
            }
        }
        this._deposits.Add(indexFrom, resourceDeposit);
        Interface.CallHook("OnResourceDepositCreated", (object)resourceDeposit);
        Random.set_state(state);
        return(resourceDeposit);
    }
Ejemplo n.º 6
0
    public override void Apply(ref Vector3 pos, ref Quaternion rot, ref Vector3 scale)
    {
        uint num = SeedEx.Seed(pos, World.Seed) + 4U;

        if ((double)SeedRandom.Value(ref num) > 0.5)
        {
            return;
        }
        switch (this.FlipAxis)
        {
        case DecorFlip.AxisType.X:
        case DecorFlip.AxisType.Z:
            rot = Quaternion.op_Multiply(Quaternion.AngleAxis(180f, Quaternion.op_Multiply(rot, Vector3.get_up())), rot);
            break;

        case DecorFlip.AxisType.Y:
            rot = Quaternion.op_Multiply(Quaternion.AngleAxis(180f, Quaternion.op_Multiply(rot, Vector3.get_forward())), rot);
            break;
        }
    }
Ejemplo n.º 7
0
 public override void Apply(ref Vector3 pos, ref Quaternion rot, ref Vector3 scale)
 {
     uint       num1   = SeedEx.Seed(pos, World.Seed) + 3U;
     float      num2   = SeedRandom.Value(ref num1);
     ref __Null local1 = ref scale.x;
Ejemplo n.º 8
0
 public override void Apply(ref Vector3 pos, ref Quaternion rot, ref Vector3 scale)
 {
     uint       num    = SeedEx.Seed(pos, World.Seed) + 1U;
     ref __Null local1 = ref pos.x;