Example #1
0
    public static SeedInfo GetSeedInfo(ITable table)
    {
        using (var tr = new Transaction())
        {
            string?message = null;

            ((SqlConnection)Transaction.CurrentConnection !).InfoMessage += (object sender, SqlInfoMessageEventArgs e) => { message = e.Message; };

            Executor.ExecuteNonQuery("DBCC CHECKIDENT ('{0}', NORESEED)".FormatWith(table.Name));

            if (message == null)
            {
                throw new InvalidOperationException("DBCC CHECKIDENT didn't write a message");
            }

            Match m = IdentityMessageRegex.Match(message);

            if (!m.Success)
            {
                throw new InvalidOperationException("DBCC CHECKIDENT messege has invalid format");
            }

            SeedInfo result = new SeedInfo
            {
                Identity = SeedInfo.Parse(m.Groups["identity"].Value),
                Column   = SeedInfo.Parse(m.Groups["column"].Value),
            };

            return(tr.Commit(result));
        }
    }
Example #2
0
 public SeedLog(SeedInfo seedInfo, string machine)
 {
     this.Name         = seedInfo.Name;
     this.Version      = seedInfo.Version;
     this.AppVersion   = seedInfo.AppVersion;
     this.ExecutedDate = seedInfo.ExecutedDate;
     this.Machine      = machine;
 }
Example #3
0
        private void UpdateSeedVersion(Seed seed, SeedInfo seedInfo)
        {
            seedInfo.Version      = seed.VersaoDoSeed();
            seedInfo.AppVersion   = Aplicacao.Versao;
            seedInfo.ExecutedDate = DateTime.Now;

            this.Session.SaveOrUpdate(seedInfo);
            this.Session.Save(new SeedLog(seedInfo, Aplicacao.NomeDaMaquina));
        }
Example #4
0
 // gather possible nature determination seeds until a same-nature PID breaks the unrolling
 private static IEnumerable <SeedInfo> GetSeeds(PIDIV pidiv, FrameGenerator info, PKM pk)
 {
     if (pk.Species == (int)Species.Unown && pk.FRLG) // Gen3 FRLG Unown: reversed await case
     {
         return(SeedInfo.GetSeedsUntilUnownForm(pidiv, info, pk.Form));
     }
     if (pidiv.Type == PIDType.CuteCharm && info.FrameType != FrameType.MethodH) // Gen4: ambiguous seed due to gender-buffered PID
     {
         return(SeedInfo.GetSeedsUntilNature4Cute(pk));
     }
     return(SeedInfo.GetSeedsUntilNature(pidiv, info));
 }
Example #5
0
        public void ReturnsᅠexpectedᅠfullyᅠpopulatedᅠSeedInfo()
        {
            Type type = typeof(FullyPopulatedSeed);

            var expected = new SeedInfo
                           (
                type,
                type,
                type.FullName,
                SomeFriendlyName,
                SomeDescription,
                new SeedableInfo[]
            {
                CreateSeedInfoForMinimalSeedType(typeof(MinimalSeed)),
                CreateSeedInfoForMinimalSeedType(typeof(AdditionalMinimalSeed)),
                CreateSeedInfoForMinimalScenarioType(typeof(AdditionalMinimalScenario)),
                new ScenarioInfo
                (
                    typeof(FullyPopulatedScenario),
                    typeof(FullyPopulatedScenario),
                    typeof(FullyPopulatedScenario).FullName,
                    SomeFriendlyName,
                    SomeDescription,
                    new SeedableInfo[]
                {
                    CreateSeedInfoForMinimalSeedType(typeof(MinimalSeed)),
                    CreateSeedInfoForMinimalSeedType(typeof(AdditionalMinimalSeed)),
                    CreateSeedInfoForMinimalScenarioType(typeof(AdditionalMinimalScenario))
                },
                    Array.Empty <Error>()
                )
            },
                new[]
            {
                new EntityInfo(typeof(object), typeof(object), typeof(object).FullName, Array.Empty <Error>()),
                new EntityInfo(typeof(string), typeof(string), typeof(string).FullName, Array.Empty <Error>()),
                new EntityInfo(typeof(int), typeof(int), typeof(int).FullName, Array.Empty <Error>())
            },
                new ProvidedYieldInfo(typeof(FullyPopulatedSeed.Yield), typeof(FullyPopulatedSeed.Yield), typeof(FullyPopulatedSeed.Yield).FullName, Array.Empty <Error>()),
                new[]
            {
                CreateRequiredYieldInfoFromYieldAccessProperty(typeof(FullyPopulatedSeed), "RequiredYieldA"),
                CreateRequiredYieldInfoFromYieldAccessProperty(typeof(FullyPopulatedSeed), "RequiredYieldB")
            },
                Array.Empty <Error>()
                           );

            builder.BuildFrom(type)
            .Should()
            .BeEquivalentTo(expected, option =>
                            option.IgnoringCyclicReferences().WithoutStrictOrdering());
        }
Example #6
0
        void JD_OnNewClientSeed(SeedInfo SeedInfo)
        {
            VisibleControll(pnlRandomize, true);
            UpdateTextBox(txtRandomizeNewHash, SeedInfo.NewServerHash);
            UpdateTextBox(txtHash, SeedInfo.NewServerHash);
            UpdateTextBox(txtRandomizeOld, SeedInfo.OldServerSeed);
            UpdateTextBox(txtRandomizeOldClient, SeedInfo.OldClientSeed);
            UpdateTextBox(txtRandomizeOldHash, SeedInfo.OldServerHash);
            UpdateTextBox(txtRandomizeOldNonce, SeedInfo.TotalRolls);
            string s = "";

            for (int i = 0; i < 24; i++)
            {
                s += RandObj.Next(0, 9).ToString();
            }
            UpdateTextBox(txtRandomizenewClient, s);
        }
Example #7
0
        private SeedInfo GetSeedInfo(string seedName)
        {
            return(this.unitOfWork.Obter(() =>
            {
                var seedRegistry = this.Session
                                   .QueryOver <SeedInfo>()
                                   .Where(x => x.Name == seedName)
                                   .Take(1)
                                   .SingleOrDefault();

                if (seedRegistry == null)
                {
                    seedRegistry = new SeedInfo(seedName);
                }

                return seedRegistry;
            }));
        }
Example #8
0
 /// <summary>
 /// Adds a seed to the storage list
 /// </summary>
 /// <param name="seed">Item</param>
 public void AddSeed(Seed seed)
 {
     // First, we start searching for similiar seeds
     if (seed.ShowType)
     {
         foreach (SeedInfo fsi in m_KnownStorage)
         {
             if (fsi.Type == seed.PlantType)
             {
                 fsi.Add(seed.PlantHue, 1);
                 Stored++;
                 return;
             }
         }
         // Second, if no similiar seeds were found, we're adding this one.
         SeedInfo ssi = new SeedInfo(seed.PlantType);
         ssi.Add(seed.PlantHue, 1);
         m_KnownStorage.Add(ssi);
         m_KnownStorage.Sort(new PlantTypeComparer());
         Stored++;
     }
     else
     {
         foreach (SeedInfo fsi in m_UnknownStorage)
         {
             if (fsi.Type == seed.PlantType)
             {
                 fsi.Add(seed.PlantHue, 1);
                 Stored++;
                 return;
             }
         }
         // Second, if no similiar seeds were found, we're adding this one.
         SeedInfo ssi = new SeedInfo(seed.PlantType);
         ssi.Add(seed.PlantHue, 1);
         // No sorting with unknown seeds
         m_UnknownStorage.Add(ssi);
         Stored++;
     }
 }
Example #9
0
        public void LoadContent(GraphicsDevice graphicsDevice, ContentManager contentManager)
        {
            spriteBatch     = new SpriteBatch(graphicsDevice);
            windowHeigth    = spriteBatch.GraphicsDevice.BackBuffer.Height;
            windowWidth     = spriteBatch.GraphicsDevice.BackBuffer.Width;
            font            = contentManager.Load <SpriteFont>("Arial16.tkfnt");
            largeFont       = contentManager.Load <SpriteFont>("largefont.tkfnt");
            helix           = contentManager.Load <Texture2D>("helix.png");
            pixel           = contentManager.Load <Texture2D>("pixel.png");
            frame           = contentManager.Load <Texture2D>("frame.png");
            progressBar     = contentManager.Load <Texture2D>("Dummy.png");
            evilProgressBar = contentManager.Load <Texture2D>("parasiteprogress.png");

            for (int i = 0; i < barLength; i++)
            {
                seeds[i]           = new SeedInfo();
                seeds[i]._position = new Vector2(i * (windowWidth) / 10 + 5, 5);
            }

            seeds[0]._type = VoxelType.TEAK_WOOD;
            textures[0]    = contentManager.Load <Texture2D>("teak.png");
            seeds[1]._type = VoxelType.PINE_WOOD;
            textures[1]    = contentManager.Load <Texture2D>("Pine.png");
            seeds[2]._type = VoxelType.SPRUCE_WOOD;
            textures[2]    = contentManager.Load <Texture2D>("spruce.png");
            seeds[3]._type = VoxelType.BEECH_WOOD;
            textures[3]    = contentManager.Load <Texture2D>("Beech.png");
            seeds[4]._type = VoxelType.OAK_WOOD;
            textures[4]    = contentManager.Load <Texture2D>("oak.png");
            seeds[5]._type = VoxelType.REDWOOD;
            textures[5]    = contentManager.Load <Texture2D>("redwood.png");
            seeds[6]._type = VoxelType.TEAK_WOOD;
            textures[6]    = contentManager.Load <Texture2D>("teak.png");
            seeds[7]._type = VoxelType.TEAK_WOOD;
            textures[7]    = contentManager.Load <Texture2D>("teak.png");
            seeds[8]._type = VoxelType.TEAK_WOOD;
            textures[8]    = contentManager.Load <Texture2D>("teak.png");
        }
Example #10
0
            }                                                                                            //#01

            //public SeedBoxGump( Mobile owner, SeedBox box ) : base( 0, 0 )//#01
            public SeedBoxGump(Mobile owner, SeedBox box, SeedInfo si, bool unknown) : base(0, 0)
            {
                m_Owner    = owner;
                m_Box      = box;
                Closable   = true;
                Disposable = true;
                Dragable   = true;
                Resizable  = false;

                seedinfo       = si;          //#01
                unknownstorage = unknown;     //#01

                if (box == null || box.Deleted)
                {
                    return;
                }

                int max = AddBackground();                 // Custom method to calculate size

                AddBackground(170, 40, 82, 80, 9350);      // Image window

                AddPages(max);
            }
Example #11
0
        public override void Deserialize(GenericReader reader)
        {
            int stored = 0;

            base.Deserialize(reader);
            int version = reader.ReadInt();

            //m_Level = (SecureLevel)reader.ReadInt();
            m_UnknownStorage = new ArrayList();

            for (int i = reader.ReadInt(); i > 0; i--)
            {
                SeedInfo si = new SeedInfo((PlantType)reader.ReadInt());
                for (int c = reader.ReadInt(); c > 0; c--)
                {
                    SeedHue sh = new SeedHue((PlantHue)reader.ReadInt(), reader.ReadInt());
                    si.Hues.Add(sh);
                    stored += sh.Amount;
                }
                m_UnknownStorage.Add(si);
            }

            m_KnownStorage = new ArrayList();
            for (int i = reader.ReadInt(); i > 0; i--)
            {
                SeedInfo si = new SeedInfo((PlantType)reader.ReadInt());
                for (int c = reader.ReadInt(); c > 0; c--)
                {
                    SeedHue sh = new SeedHue((PlantHue)reader.ReadInt(), reader.ReadInt());
                    si.Hues.Add(sh);
                    stored += sh.Amount;
                }
                m_KnownStorage.Add(si);
            }
            m_Stored = stored;
        }
Example #12
0
 void Instance_OnNewClientSeed(SeedInfo SeedInfo)
 {
     sqlite_helper.InsertSeed(SeedInfo.OldServerSeed.ToString(), SeedInfo.OldServerSeed.ToString());
 }
Example #13
0
		/// <summary>
		/// Adds a seed to the storage list
		/// </summary>
		/// <param name="seed">Item</param>
		public void AddSeed( Seed seed )
		{
			// First, we start searching for similiar seeds
			if( seed.ShowType )
			{
				foreach( SeedInfo fsi in m_KnownStorage )
				{
					if( fsi.Type == seed.PlantType )
					{
						fsi.Add( seed.PlantHue, 1);
						Stored++;
						return;
					}
				}
				// Second, if no similiar seeds were found, we're adding this one.
				SeedInfo ssi = new SeedInfo( seed.PlantType ); // Damn scope bug!
				ssi.Add( seed.PlantHue, 1 );
				m_KnownStorage.Add( ssi );
				m_KnownStorage.Sort( new PlantTypeComparer() );
				Stored++;
			}
			else
			{
				foreach( SeedInfo fsi in m_UnknownStorage )
				{
					if( fsi.Type == seed.PlantType )
					{
						fsi.Add( seed.PlantHue, 1);
						Stored++;
						return;
					}
				}
				// Second, if no similiar seeds were found, we're adding this one.
				SeedInfo ssi = new SeedInfo( seed.PlantType );
				ssi.Add( seed.PlantHue, 1 );
				// No sorting with unknown seeds
				m_UnknownStorage.Add( ssi );
				Stored++;
			}
		}
Example #14
0
		public override void Deserialize( GenericReader reader )
		{
			int stored = 0;
			base.Deserialize( reader );
			int version = reader.ReadInt();
			m_Level = (SecureLevel)reader.ReadInt();
			m_UnknownStorage = new ArrayList();

			for( int i = reader.ReadInt(); i > 0 ; i-- )
			{
				SeedInfo si = new SeedInfo( (PlantType)reader.ReadInt() );
				for( int c = reader.ReadInt(); c > 0; c-- )
				{
					SeedHue sh = new SeedHue( (PlantHue)reader.ReadInt(), reader.ReadInt() );
					si.Hues.Add( sh );
					stored += sh.Amount;
				}
				m_UnknownStorage.Add( si );
			}

			m_KnownStorage = new ArrayList();
			for( int i = reader.ReadInt(); i > 0; i-- )
			{
				SeedInfo si = new SeedInfo( (PlantType)reader.ReadInt() );
				for( int c = reader.ReadInt(); c > 0; c-- )
				{
					SeedHue sh = new SeedHue( (PlantHue)reader.ReadInt(), reader.ReadInt() );
					si.Hues.Add( sh );
					stored += sh.Amount;
				}
				m_KnownStorage.Add( si );
			}
			m_Stored = stored;
		}
Example #15
0
 public SeedContractViolationEventArgs(int seedingStep, SeedInfo seed, string errorMessage)
     : base(seedingStep, seed)
 {
     ErrorMessage = errorMessage;
 }
Example #16
0
        public static Collection<SeedInfo> GetMySeeds(string strxml, ref int totalpage)
        {
            try
            {
                totalpage = 0;

                //<data><seed><item><seedid>1</seedid><num>10</num><fruitpic>http://img.kaixin001.com.cn//i2/house/garden/crop/huluobo.swf</fruitpic><name>胡萝卜</name></item><item><seedid>2</seedid><num>2</num><fruitpic>http://img.kaixin001.com.cn//i2/house/garden/crop/dabaicai.swf</fruitpic><name>大白菜</name></item><item><seedid>3</seedid><num>2</num><fruitpic>http://img.kaixin001.com.cn//i2/house/garden/crop/tudou.swf</fruitpic><name>土豆</name></item><item><seedid>4</seedid><num>2</num><fruitpic>http://img.kaixin001.com.cn//i2/house/garden/crop/qianniuhua.swf</fruitpic><name>牵牛花</name></item></seed><ret>succ</ret><totalpage>2</totalpage></data>
                //<data><seed><item><seedid>5</seedid><num>2</num><fruitpic>http://img.kaixin001.com.cn//i2/house/garden/crop/huanggua.swf</fruitpic><name>黄瓜</name></item><item><seedid>6</seedid><num>2</num><fruitpic>http://img.kaixin001.com.cn//i2/house/garden/crop/lajiao.swf</fruitpic><name>辣椒</name></item><item><seedid>7</seedid><num>2</num><fruitpic>http://img.kaixin001.com.cn//i2/house/garden/crop/yumi.swf</fruitpic><name>玉米</name></item></seed><ret>succ</ret><totalpage>2</totalpage></data>
                //<data><ret>succ</ret><totalpage>2</totalpage></data>
                XmlDocument objXmlDoc = new XmlDocument();
                objXmlDoc.LoadXml(strxml);
                if (objXmlDoc == null)
                    return null;                

                if (objXmlDoc.SelectSingleNode(Constants.GARDEN_SEED_ROOT + Constants.CHAR_SLASH + Constants.GARDEN_SEED_SEED) == null)
                {
                    return new Collection<SeedInfo>();
                }

                totalpage = DataConvert.GetInt32(objXmlDoc.SelectSingleNode(Constants.GARDEN_SEED_ROOT + Constants.CHAR_SLASH + Constants.GARDEN_SEED_TOTALPAGE).InnerText);

                DataView dv = GetData(objXmlDoc, Constants.GARDEN_SEED_ROOT + Constants.CHAR_SLASH + Constants.GARDEN_SEED_SEED);

                Collection<SeedInfo> seeds = new Collection<SeedInfo>();

                for (int ix = 0; ix < dv.Table.Rows.Count; ix++)
                {
                    SeedInfo seed = new SeedInfo();
                    seed.SeedId = DataConvert.GetInt32(dv.Table.Rows[ix][0]);
                    seed.Num = DataConvert.GetInt32(dv.Table.Rows[ix][1]);
                    //seed.FruitPic = dv.Table.Rows[ix][2].ToString();
                    seed.Name = dv.Table.Rows[ix][3].ToString();
                    seeds.Add(seed);
                }
                return seeds;
            }
            catch (Exception ex)
            {
                LogHelper.Write("ConfigCtr.GetMySeeds", strxml, ex, LogSeverity.Error);
                return null;
            }
        }
Example #17
0
        public static Collection<SeedInfo> GetOriginalSeedsList(string content)
        {
            try
            {
                XmlDocument objXmlDoc = new XmlDocument();
                objXmlDoc.LoadXml(content);
                if (objXmlDoc == null)
                    return null;

                if (objXmlDoc.SelectSingleNode("data/seed") == null)
                {
                    return new Collection<SeedInfo>();
                }

                DataView dv = GetData(objXmlDoc, "data/seed");

                Collection<SeedInfo> seeds = new Collection<SeedInfo>();

                for (int ix = 0; ix < dv.Table.Rows.Count; ix++)
                {
                    SeedInfo seed = new SeedInfo();
                    seed.SeedId = DataConvert.GetInt32(dv.Table.Rows[ix]["seedid"]);                    
                    seed.Name = DataConvert.GetString(dv.Table.Rows[ix]["name"]);
                    seed.Price = DataConvert.GetInt32(dv.Table.Rows[ix]["price"]);
                    seeds.Add(seed);
                }
                return seeds;
            }
            catch (Exception ex)
            {
                LogHelper.Write("ConfigCtrl.GetOriginalSeedsList", content, ex, LogSeverity.Error);
                return null;
            }
        }
Example #18
0
        public static Collection<SeedInfo> GetSeedsInShop()
        {
            try
            {
                XmlDocument objXmlDoc = GetMasterDataFile(Constants.FILE_SEEDSLISTMASTERDATA);
                if (objXmlDoc == null)
                    return null;

                DataView dv = GetData(objXmlDoc, "data/seed");

                Collection<SeedInfo> seeds = new Collection<SeedInfo>();

                for (int ix = 0; ix < dv.Table.Rows.Count; ix++)
                {
                    SeedInfo seed = new SeedInfo();
                    seed.SeedId = DataConvert.GetInt32(dv.Table.Rows[ix]["seedid"]);
                    seed.Name = DataConvert.GetString(dv.Table.Rows[ix]["name"]);
                    seed.Price = DataConvert.GetInt32(dv.Table.Rows[ix]["price"]);                    
                    seeds.Add(seed);
                }                
                
                return seeds;
            }
            catch (Exception ex)
            {
                LogHelper.Write("ConfigCtrl.GetSeedsInShop", ex);
                return null;
            }
        }
Example #19
0
        private bool SowPlot(GardenInfo garden, SeedInfo seed, PlotInfo plot)
        {
            SetMessage(" 尝试播种" + seed.Name + "...");
            HH.DelayedTime = Constants.DELAY_2SECONDS;
            string content = HH.Post("http://www.kaixin001.com/house/garden/farmseed.php", string.Format("fuid=0&farmnum={0}&verify={1}&seedid={2}&r=0%2E012194405309855938", plot.FarmNum, this._verifyCode, seed.SeedId));
            if (GetFarmFeedback(content))
            {
                //人参
                if (seed.SeedId == 21)
                    garden.PanaxCount++;
                //人参(有人参娃娃)
                if (seed.SeedId == 25)
                    garden.PanaxBabyCount++;
                seed.Num--;
                return true;
            }
            else
            {
                if (content.Contains("该种子最多同时可种"))
                    seed.Valid = false;
                return false;
            }

        }
Example #20
0
 private bool SowSharedPlot(string fuid, SeedInfo seed, PlotInfo plot, ref string content)
 {
     SetMessage(" 尝试播种" + seed.Name + "...");
     HH.DelayedTime = Constants.DELAY_2SECONDS;
     content = HH.Get(string.Format("http://www.kaixin001.com/house/garden/farmseed.php?verify={0}&seedid={1}&r=0%2E1429477329365909&fuid={2}&farmnum={3}", this._verifyCode, seed.SeedId, fuid, plot.FarmNum));
     if (GetFarmFeedback(content))
     {
         seed.Num--;
         return true;
     }
     else
     {
         if (content.Contains("该种子最多同时可种"))
             seed.Valid = false;
         return false;
     }
 }
Example #21
0
        public void LoadContent(GraphicsDevice graphicsDevice, ContentManager contentManager)
        {
            spriteBatch = new SpriteBatch(graphicsDevice);
            windowHeigth = spriteBatch.GraphicsDevice.BackBuffer.Height;
            windowWidth = spriteBatch.GraphicsDevice.BackBuffer.Width;
            font = contentManager.Load<SpriteFont>("Arial16.tkfnt");
            largeFont = contentManager.Load<SpriteFont>("largefont.tkfnt");
            helix = contentManager.Load<Texture2D>("helix.png");
            pixel = contentManager.Load<Texture2D>("pixel.png");
            frame = contentManager.Load<Texture2D>("frame.png");
            progressBar = contentManager.Load<Texture2D>("Dummy.png");
            evilProgressBar = contentManager.Load<Texture2D>("parasiteprogress.png");

            for (int i = 0; i < barLength; i++)
            {
                seeds[i] = new SeedInfo();
                seeds[i]._position = new Vector2(i * (windowWidth) / 10 + 5, 5);
            }

            seeds[0]._type = VoxelType.TEAK_WOOD;
            textures[0] = contentManager.Load<Texture2D>("teak.png");
            seeds[1]._type = VoxelType.PINE_WOOD;
            textures[1] = contentManager.Load<Texture2D>("Pine.png");
            seeds[2]._type = VoxelType.SPRUCE_WOOD;
            textures[2] = contentManager.Load<Texture2D>("spruce.png");
            seeds[3]._type = VoxelType.BEECH_WOOD;
            textures[3] = contentManager.Load<Texture2D>("Beech.png");
            seeds[4]._type = VoxelType.OAK_WOOD;
            textures[4] = contentManager.Load<Texture2D>("oak.png");
            seeds[5]._type = VoxelType.REDWOOD;
            textures[5] = contentManager.Load<Texture2D>("redwood.png");
            seeds[6]._type = VoxelType.TEAK_WOOD;
            textures[6] = contentManager.Load<Texture2D>("teak.png");
            seeds[7]._type = VoxelType.TEAK_WOOD;
            textures[7] = contentManager.Load<Texture2D>("teak.png");
            seeds[8]._type = VoxelType.TEAK_WOOD;
            textures[8] = contentManager.Load<Texture2D>("teak.png");
        }
Example #22
0
			public SeedBoxGump( Mobile owner, SeedBox box ) : this( owner, box, null, true){}//#01
			
			//public SeedBoxGump( Mobile owner, SeedBox box ) : base( 0, 0 )//#01
			public SeedBoxGump( Mobile owner, SeedBox box, SeedInfo si, bool unknown ) : base( 0, 0 )
			{
				m_Owner = owner;
				m_Box = box;
				Closable = true;
				Disposable = true;
				Dragable = true;
				Resizable = false;
				
				seedinfo = si;//#01
				unknownstorage = unknown;//#01
								
				if( box == null || box.Deleted )
					return;

				int max = AddBackground(); // Custom method to calculate size
				AddBackground( 170, 40, 82, 80, 9350 ); // Image window

				AddPages( max );

			}
Example #23
0
            public override void OnResponse(Server.Network.NetState sender, RelayInfo info)
            {
                if (m_Box == null || m_Box.Deleted || info.ButtonID == 0)
                {
                    return;
                }

                Mobile from = sender.Mobile;

                int curritem = 1;

                SeedInfo inf = null;

                if (seedinfo != null && !unknownstorage)
                {
                    PlantType planttype = seedinfo.Type;

                    foreach (SeedInfo si in m_Box.KnownStorage)
                    {
                        if (si.Type == planttype)
                        {
                            foreach (SeedHue sh in si.Hues)
                            {
                                if (info.ButtonID == curritem)
                                {
                                    if (AddToPack(from, si.Type, sh.Hue, true))
                                    {
                                        sh.Amount--;
                                        m_Box.Stored--;
                                        if (sh.Amount < 1)
                                        {
                                            si.Hues.Remove(sh);
                                        }
                                        if (si.Hues.Count < 1)
                                        {
                                            m_Box.UnknownStorage.Remove(si);
                                        }
                                    }
                                    //from.SendGump( new SeedBoxGump( from, m_Box ) );//#01
                                    inf = si;                                    //#01
                                    if (si.Hues.Count < 1)
                                    {
                                        inf = null;                                                      //#01
                                    }
                                    from.SendGump(new SeedBoxGump(from, m_Box, inf, false));             //#01
                                    return;
                                }
                                curritem++;
                            }
                        }
                    }
                }

                foreach (SeedInfo si in m_Box.UnknownStorage)
                {
                    foreach (SeedHue sh in si.Hues)
                    {
                        if (info.ButtonID == curritem)
                        {
                            if (AddToPack(from, si.Type, sh.Hue, false))
                            {
                                sh.Amount--;
                                m_Box.Stored--;
                                if (sh.Amount < 1)
                                {
                                    si.Hues.Remove(sh);
                                }
                                if (si.Hues.Count < 1)
                                {
                                    m_Box.UnknownStorage.Remove(si);
                                }
                            }
                            //from.SendGump( new SeedBoxGump( from, m_Box ) );//#01
                            inf = si;                            //#01
                            if (si.Hues.Count < 1)
                            {
                                inf = null;                                              //#01
                            }
                            from.SendGump(new SeedBoxGump(from, m_Box, inf, true));      //#01
                            return;
                        }
                        curritem++;
                    }
                }
                foreach (SeedInfo si in m_Box.KnownStorage)
                {
                    if (seedinfo == null || si.Type != seedinfo.Type)                   //#01
                    {
                        foreach (SeedHue sh in si.Hues)
                        {
                            if (info.ButtonID == curritem)
                            {
                                if (AddToPack(from, si.Type, sh.Hue, true))
                                {
                                    sh.Amount--;
                                    m_Box.Stored--;
                                    if (sh.Amount < 1)
                                    {
                                        si.Hues.Remove(sh);
                                    }
                                    if (si.Hues.Count < 1)
                                    {
                                        m_Box.KnownStorage.Remove(si);
                                    }
                                }
                                //from.SendGump( new SeedBoxGump( from, m_Box ) );//#01
                                inf = si;                        //#01
                                if (si.Hues.Count < 1)
                                {
                                    inf = null;                                          //#01
                                }
                                from.SendGump(new SeedBoxGump(from, m_Box, inf, false)); //#01
                                return;
                            }
                            curritem++;
                        }
                    }                              //#01 fin du if
                }
                from.SendLocalizedMessage(500065); // Object not found
            }