ReadBoolean() 공개 메소드

Reads a boolean from the stream. 1 byte is read.
public ReadBoolean ( ) : bool
리턴 bool
예제 #1
0
 protected override void Parse(EndianBinaryReader r)
 {
     EID = ReadVarInt(r);
     Yaw = r.ReadSByte() * Math.PI / 128;
     Pitch = r.ReadSByte() * Math.PI / 128;
     Unknown = r.ReadBoolean();
 }
예제 #2
0
 protected override void Parse(EndianBinaryReader r)
 {
     Locale = ReadString8(r);
     ViewDistance = r.ReadByte();
     ChatFlags = r.ReadByte();
     ChatColors = r.ReadBoolean();
     DisplayedSkinParts = r.ReadByte();
 }
예제 #3
0
        protected override void Parse(EndianBinaryReader r)
        {
			Yaw = r.ReadSingle () * Math.PI / 180;
			Pitch = r.ReadSingle () * Math.PI / 180;
			OnGround = r.ReadBoolean ();
#if DEBUG
			//Console.WriteLine("P L: " + Pitch);
#endif
		}
예제 #4
0
 protected override void Parse(EndianBinaryReader r)
 {
     EID = ReadVarInt(r);
     Delta = new CoordDouble();
     Delta.X = ((double)r.ReadSByte()) / scale;
     Delta.Y = ((double)r.ReadSByte()) / scale;
     Delta.Z = ((double)r.ReadSByte()) / scale;
     OnGround = r.ReadBoolean();
 }
        protected override void Parse(EndianBinaryReader r)
        {
			EID = ReadVarInt(r);
			Delta = new CoordDouble ();
			Delta.X = ((double)r.ReadSByte ()) / 32;
			Delta.Y = ((double)r.ReadSByte ()) / 32;
			Delta.Z = ((double)r.ReadSByte ()) / 32;
			Yaw = r.ReadSByte () * Math.PI / 128;
			Pitch = r.ReadSByte () * Math.PI / 128;
            OnGround = r.ReadBoolean();
		}
예제 #6
0
 protected override void Parse(EndianBinaryReader r)
 {
     EID = ReadVarInt(r);
     Effect = (PlayerEffects)r.ReadSByte();
     Amplifier = r.ReadSByte();
     Duration = ReadVarInt(r);
     HideParticles = r.ReadBoolean();
     #if DEBUGPACKET
     if (Effect.ToString() == ((int)Effect).ToString())
         throw new NotImplementedException(Effect.ToString());
     #endif
 }
예제 #7
0
 protected override void Parse(EndianBinaryReader r)
 {
     int columnCount = r.ReadInt16();
     int compressedLength = r.ReadInt32();
     Unknown = r.ReadBoolean();
     CompressedChunkColumns = r.ReadBytesOrThrow(compressedLength);
     ColumnMeta = new UItem[columnCount];
     for (int n = 0; n < columnCount; n++)
     {
         ColumnMeta [n] = new UItem(r);
     }
 }
        protected override void Parse(EndianBinaryReader r)
        {
            Position = new CoordDouble();
            Position.X = r.ReadDouble();
            Position.Y = r.ReadDouble();
            Position.Z = r.ReadDouble();
            Yaw = r.ReadSingle() * Math.PI / 180;
            Pitch = r.ReadSingle() * Math.PI / 180;
            OnGround = r.ReadBoolean();
#if DEBUG
            //Console.WriteLine("PPL: " + Pitch);
#endif
        }
예제 #9
0
 protected override void Parse(EndianBinaryReader r)
 {
     ParticleID = r.ReadInt32();
     LongDistance = r.ReadBoolean();
     Position = new CoordDouble();
     Position.X = r.ReadSingle();
     Position.Y = r.ReadSingle();
     Position.Z = r.ReadSingle();
     Size = new CoordDouble();
     Size.X = r.ReadSingle();
     Size.Y = r.ReadSingle();
     Size.Z = r.ReadSingle();
     Speed = r.ReadSingle();
     Count = r.ReadInt32();
     Debug.WriteLine(this);
 }
예제 #10
0
 protected override void Parse(EndianBinaryReader r)
 {
     EntityID = r.ReadInt32();
     GameMode = (GameMode)r.ReadByte();
     Dimension = (Dimensions)r.ReadSByte();
     Difficulty = r.ReadByte();
     MaxPlayers = r.ReadByte();
     LevelType = ReadString8(r);
     ReducedDebug = r.ReadBoolean();
     #if DEBUGPACKET
     if (Dimension.ToString() == ((int)Dimension).ToString())
         throw new NotImplementedException(Dimension.ToString());
     if (GameMode.ToString() == ((int)GameMode).ToString())
         throw new NotImplementedException(GameMode.ToString());
     #endif
 }
예제 #11
0
 protected override void Parse(EndianBinaryReader r)
 {
     X = r.ReadInt32();
     Z = r.ReadInt32();
     Complete = r.ReadBoolean();
     ChunkBitMap = r.ReadUInt16();
     int length = ReadVarInt(r);
     InitBuffer();
     if (length != BlockType.Length + BlockMeta.Length + BlockLight.Length + BlockSkyLight.Length + (Complete ? Biome.Length : 0))
         throw new InvalidDataException();
     var s = r.BaseStream;
     ReadBuffer(s, BlockType);
     ReadBuffer(s, BlockMeta);
     ReadBuffer(s, BlockLight);
     ReadBuffer(s, BlockSkyLight);
     if (Complete)
         ReadBuffer(s, Biome);
 }
예제 #12
0
        protected override void Parse(EndianBinaryReader r)
        {
			OnGround = r.ReadBoolean ();
		}
예제 #13
0
        public void Parse(EndianBinaryReader reader, uint size)
        {
            var maxReadPos = reader.BaseStream.Position + size;
            while(reader.BaseStream.Position < maxReadPos)
            {
                if (objectStack.Count != 0)
                {
                    var count = reader.ReadUInt16();
                    var propString = "";
                    for (var i = 0; i < count; i++)
                    {
                        propString += (char) reader.ReadByte();
                    }
                    objectStack.Peek().CurrentProperty = propString;
                }

                var type = (Globals.Amf0Types)reader.ReadByte();

                switch (type)
                {
                    case Globals.Amf0Types.Number:
                        {
                            var value = reader.ReadDouble();
                            if(objectStack.Count != 0)
                            {
                                objectStack.Peek().Numbers.Add(objectStack.Peek().CurrentProperty, value);
                            }
                            else
                            {
                                amfData.Numbers.Add(value);
                            }
                        }
                        break;
                    case Globals.Amf0Types.Boolean:
                        {
                            var value = reader.ReadBoolean();
                            if (objectStack.Count != 0)
                            {
                                objectStack.Peek().Booleans.Add(objectStack.Peek().CurrentProperty, value);
                            }
                            else
                            {
                                amfData.Booleans.Add(value);
                            }
                        }
                        break;
                    case Globals.Amf0Types.String:
                        {
                            var count = reader.ReadUInt16();
                            var pushString = "";
                            for (var i = 0; i < count; i++)
                            {
                                pushString += (char) reader.ReadByte();
                            }

                            if (objectStack.Count != 0)
                            {
                                objectStack.Peek().Strings.Add(objectStack.Peek().CurrentProperty, pushString);
                            }
                            else
                            {
                                amfData.Strings.Add(pushString);
                            }
                        }
                        break;
                    case Globals.Amf0Types.Null:

                        if (objectStack.Count != 0)
                        {
                            objectStack.Peek().Nulls++;
                        }
                        else
                        {
                            amfData.Nulls++;
                        }
                        break;
                    case Globals.Amf0Types.Object:
                    case Globals.Amf0Types.Array:
                        {
                            if(type == Globals.Amf0Types.Array)
                            {
                                var arrayLength = reader.ReadInt32();
                            }
                            var objectAdd = new AmfObject();
                            objectStack.Push(objectAdd);
                        }
                        break;
                    case Globals.Amf0Types.ObjectEnd:
                        {
                            if(objectStack.Count == 1)
                            {
                                amfData.Objects.Add(objectStack.Pop());
                            }
                            else if(objectStack.Count > 1)
                            {
                                var mostRecentObject = objectStack.Pop();
                                objectStack.Peek().Objects.Add(objectStack.Peek().CurrentProperty, mostRecentObject);
                            }
                        }
                        break;
                    default:
                        throw new ArgumentOutOfRangeException();
                }
                /*
                switch (type)
                {
                    case Amf0Types.Array:
                    case Amf0Types.Object:
                        {
                            if(type == Amf0Types.Array)
                            {
                                var arrayLength = reader.ReadInt32();
                                Console.WriteLine("Array:" + arrayLength);
                            }
                            bool hasProperty = false;
                            string property = "";
                            var objectAdd = new AmfObject();
                            while (reader.BaseStream.Position < maxReadPos)
                            {
                                if(!hasProperty)
                                {
                                    property = "";
                                    var propertyStringLength = reader.ReadUInt16();
                                    for (var i = 0; i < propertyStringLength; i++)
                                    {
                                        property += (char)reader.ReadByte();
                                    }
                                    hasProperty = true;
                                }

                                if (hasProperty == true)
                                {
                                    if(property.Length == 0)
                                    {
                                        amfData.Objects.Add(objectAdd);

                                        break;
                                    }
                                    var objtype = (Amf0Types)reader.ReadByte();
                                    parseType(objtype, reader, ref objectAdd.Nulls, objectNumbers: objectAdd.Numbers,
                                              objectBooleans: objectAdd.Booleans, objectStrings: objectAdd.Strings,
                                              property: property);
                                    hasProperty = false;
                                }
                            }
                        }
                        break;
                    default:
                        parseType(type, reader, ref amfData.Nulls, amfData.Numbers, amfData.Booleans, amfData.Strings);
                        break;
                }*/
            }
        }
예제 #14
0
 //jesus f**k note to self: fix this
 private static void parseType(Globals.Amf0Types type, EndianBinaryReader reader,
     ref uint Nulls,
     List<double> Numbers = null,
     List<bool> Booleans = null,
     List<string> Strings = null,
     Dictionary<string, string> objectStrings = null,
     Dictionary<string, double> objectNumbers = null,
     Dictionary<string, bool> objectBooleans = null,
     string property = "")
 {
     switch (type)
     {
         case Globals.Amf0Types.Number:
             if (Numbers != null)
                 Numbers.Add(reader.ReadDouble());
             else
                 objectNumbers.Add(property, reader.ReadDouble());
             break;
         case Globals.Amf0Types.Boolean:
             if (Booleans != null)
                 Booleans.Add(reader.ReadBoolean());
             else
                 objectBooleans.Add(property, reader.ReadBoolean());
             break;
         case Globals.Amf0Types.String:
             {
                 var count = reader.ReadUInt16();
                 var pushString = "";
                 for (var i = 0; i < count; i++)
                 {
                     pushString += (char) reader.ReadByte();
                 }
                 if (Strings != null)
                     Strings.Add(pushString);
                 else
                     objectStrings.Add(property, pushString);
             }
             break;
         case Globals.Amf0Types.Null:
             Nulls++;
             break;
         case Globals.Amf0Types.Array:
             break;
         case Globals.Amf0Types.ObjectEnd:
             break;
         default:
             throw new ArgumentOutOfRangeException();
     }
 }
예제 #15
0
 protected override void Parse(EndianBinaryReader r)
 {
     EID = r.ReadInt32();
     VehicleID = r.ReadInt32();
     Leash = r.ReadBoolean();
 }
 protected override void Parse(EndianBinaryReader r)
 {
     WindowID = r.ReadByte();
     ActionID = r.ReadInt16();
     Accepted = r.ReadBoolean();
 }
예제 #17
0
 protected override void Parse(EndianBinaryReader r)
 {
     Command = ReadString8(r);
     if (r.ReadBoolean())
         Position = CoordInt.Read(r);
 }
예제 #18
0
        //Only parsed so we can block it
        protected override void Parse(EndianBinaryReader r)
        {
            //Console.WriteLine("Player List Item:");
            //Console.WriteLine(BitConverter.ToString(PacketBuffer));
            return; //Ignore the data, we just want to block the package
            #if !DEBUG
            #else
            #pragma warning disable 162
            Action = (Actions)ReadVarInt(r);
            int count = ReadVarInt(r);
            Players = new List<PlayerItem>(count);
            switch (Action)
            {
                case Actions.AddPlayer:
                    for (int n = 0; n < count; n++)
                    {
                        var i = new PlayerItem();
                        i.UUID = new Guid(r.ReadBytesOrThrow(16));
                        i.Name = ReadString8(r);
                        int props = ReadVarInt(r);
                        for (int p = 0; p < props; p++)
                        {
                            string name = ReadString8(r);
                            string value = ReadString8(r);
                            bool signed = r.ReadBoolean();
                            if (signed)
                            {
                                string sign = ReadString8(r);
                            }
                            throw new NotImplementedException();
                        }
                        i.Gamemode = (GameMode)ReadVarInt(r);
                        i.Ping = ReadVarInt(r);
                        Players.Add(i);
                    }
                    break;
                case Actions.UpdateGamemode:
                    for (int n = 0; n < count; n++)
                    {
                        var i = new PlayerItem();
                        i.UUID = new Guid(r.ReadBytesOrThrow(16));
                        i.Gamemode = (GameMode)ReadVarInt(r);
                        Players.Add(i);
                    }
                    break;
                case Actions.UpdateLatency:
                    for (int n = 0; n < count; n++)
                    {
                        var i = new PlayerItem();
                        i.UUID = new Guid(r.ReadBytesOrThrow(16));
                        i.Ping = ReadVarInt(r);
                        Players.Add(i);
                    }
                    break;
                case Actions.RemovePlayer:
                    for (int n = 0; n < count; n++)
                    {
                        var i = new PlayerItem();
                        i.UUID = new Guid(r.ReadBytesOrThrow(16));
                        Players.Add(i);
                    }
                    break;

                default:
                    throw new NotImplementedException("Action: " + Action);
            }
            #pragma warning restore 162
            #endif
        }