Exemplo n.º 1
0
        public ComponentNetherBridgeStartPiece(Random par1Random, int par2, int par3) : base(par1Random, par2, par3)
        {
            Field_40034_d = new List <StructureComponent>();
            Field_40035_b = new List <StructureNetherBridgePieceWeight>();
            StructureNetherBridgePieceWeight[] astructurenetherbridgepieceweight = StructureNetherBridgePieces.GetPrimaryComponents();
            int i = astructurenetherbridgepieceweight.Length;

            for (int j = 0; j < i; j++)
            {
                StructureNetherBridgePieceWeight structurenetherbridgepieceweight = astructurenetherbridgepieceweight[j];
                structurenetherbridgepieceweight.Field_40698_c = 0;
                Field_40035_b.Add(structurenetherbridgepieceweight);
            }

            Field_40036_c = new List <StructureNetherBridgePieceWeight>();
            astructurenetherbridgepieceweight = StructureNetherBridgePieces.GetSecondaryComponents();
            i = astructurenetherbridgepieceweight.Length;

            for (int k = 0; k < i; k++)
            {
                StructureNetherBridgePieceWeight structurenetherbridgepieceweight1 = astructurenetherbridgepieceweight[k];
                structurenetherbridgepieceweight1.Field_40698_c = 0;
                Field_40036_c.Add(structurenetherbridgepieceweight1);
            }
        }
Exemplo n.º 2
0
        private ComponentNetherBridgePiece GetNextComponent(ComponentNetherBridgeStartPiece par1ComponentNetherBridgeStartPiece, List <StructureNetherBridgePieceWeight> par2List, List <StructureComponent> par3List, Random par4Random, int par5, int par6, int par7, int par8, int par9)
        {
            int  var10 = this.GetTotalWeight(par2List);
            bool var11 = var10 > 0 && par9 <= 30;
            int  var12 = 0;

            while (var12 < 5 && var11)
            {
                ++var12;
                int var13 = par4Random.Next(var10);
                IEnumerator <StructureNetherBridgePieceWeight> var14 = par2List.GetEnumerator();

                while (var14.MoveNext())
                {
                    StructureNetherBridgePieceWeight var15 = var14.Current;
                    var13 -= var15.Field_40697_b;

                    if (var13 < 0)
                    {
                        if (!var15.Func_40693_a(par9) || var15 == par1ComponentNetherBridgeStartPiece.Field_40037_a && !var15.Field_40696_e)
                        {
                            break;
                        }

                        ComponentNetherBridgePiece var16 = StructureNetherBridgePieces.CreateNextComponent(var15, par3List, par4Random, par5, par6, par7, par8, par9);

                        if (var16 != null)
                        {
                            ++var15.Field_40698_c;
                            par1ComponentNetherBridgeStartPiece.Field_40037_a = var15;

                            if (!var15.Func_40694_a())
                            {
                                par2List.Remove(var15);
                            }

                            return(var16);
                        }
                    }
                }
            }

            ComponentNetherBridgeEnd var17 = ComponentNetherBridgeEnd.Func_40023_a(par3List, par4Random, par5, par6, par7, par8, par9);

            return(var17);
        }