Server.Multis.BaseBoat.DisplayBoatHS.DisplayBoatHS C# (CSharp) Méthode

DisplayBoatHS() public méthode

public DisplayBoatHS ( Mobile beholder, BaseBoat boat ) : System
beholder Mobile
boat BaseBoat
Résultat System
			public DisplayBoatHS( Mobile beholder, BaseBoat boat )
				: base( 0xF7 )
			{
				List<IEntity> ents = boat.GetMovingEntities();

				SafeAdd( boat.TillerMan, ents );
				SafeAdd( boat.Hold, ents );
				SafeAdd( boat.PPlank, ents );
				SafeAdd( boat.SPlank, ents );

				ents.Add( boat );

				EnsureCapacity( 3 + 2 + ents.Count * 26 );

				m_Stream.Write( (short) 0 ); // count placeholder

				int count = 0;

				foreach ( IEntity ent in ents )
				{
					if ( !beholder.CanSee( ent ) )
						continue;

					// Embedded WorldItemHS packets
					m_Stream.Write( (byte) 0xF3 );
					m_Stream.Write( (short) 0x1 );

					if ( ent is BaseMulti )
					{
						BaseMulti bm = (BaseMulti)ent;

						m_Stream.Write( (byte) 0x02 );
						m_Stream.Write( (int) bm.Serial );
						// TODO: Mask no longer needed, merge with Item case?
						m_Stream.Write( (ushort) ( bm.ItemID & 0x3FFF ) );
						m_Stream.Write( (byte) 0 );

						m_Stream.Write( (short) bm.Amount );
						m_Stream.Write( (short) bm.Amount );

						m_Stream.Write( (short) ( bm.X & 0x7FFF ) );
						m_Stream.Write( (short) ( bm.Y & 0x3FFF ) );
						m_Stream.Write( (sbyte) bm.Z );

						m_Stream.Write( (byte) bm.Light );
						m_Stream.Write( (short) bm.Hue );
						m_Stream.Write( (byte) bm.GetPacketFlags() );
					}
					else if ( ent is Mobile )
					{
						Mobile m = (Mobile)ent;

						m_Stream.Write( (byte) 0x01 );
						m_Stream.Write( (int) m.Serial );
						m_Stream.Write( (short) m.Body );
						m_Stream.Write( (byte) 0 );

						m_Stream.Write( (short) 1 );
						m_Stream.Write( (short) 1 );

						m_Stream.Write( (short) ( m.X & 0x7FFF ) );
						m_Stream.Write( (short) ( m.Y & 0x3FFF ) );
						m_Stream.Write( (sbyte) m.Z );

						m_Stream.Write( (byte) m.Direction );
						m_Stream.Write( (short) m.Hue );
						m_Stream.Write( (byte) m.GetPacketFlags() );
					}
					else if ( ent is Item )
					{
						Item item = (Item)ent;

						m_Stream.Write( (byte) 0x00 );
						m_Stream.Write( (int) item.Serial );
						m_Stream.Write( (ushort) ( item.ItemID & 0xFFFF ) );
						m_Stream.Write( (byte) 0 );

						m_Stream.Write( (short) item.Amount );
						m_Stream.Write( (short) item.Amount );

						m_Stream.Write( (short) ( item.X & 0x7FFF ) );
						m_Stream.Write( (short) ( item.Y & 0x3FFF ) );
						m_Stream.Write( (sbyte) item.Z );

						m_Stream.Write( (byte) item.Light );
						m_Stream.Write( (short) item.Hue );
						m_Stream.Write( (byte) item.GetPacketFlags() );
					}

					m_Stream.Write( (short) 0x00 );
					++count;
				}

				m_Stream.Seek( 3, System.IO.SeekOrigin.Begin );
				m_Stream.Write( (short) count );
			}
		}
BaseBoat.DisplayBoatHS