Пример #1
0
 public ParticleEffectPacketOut(ParticleEffectNetType type, double dat1, Location pos)
 {
     UsageType = NetUsageType.EFFECTS;
     ID = ServerToClientPacket.PARTICLE_EFFECT;
     Data = new byte[1 + 4 + 24];
     Data[0] = (byte)type;
     Utilities.FloatToBytes((float)dat1).CopyTo(Data, 1);
     pos.ToDoubleBytes().CopyTo(Data, 1 + 4);
 }
Пример #2
0
 public ParticleEffectPacketOut(ParticleEffectNetType type, double dat1, Location pos)
 {
     UsageType = NetUsageType.EFFECTS;
     ID        = ServerToClientPacket.PARTICLE_EFFECT;
     Data      = new byte[1 + 4 + 24];
     Data[0]   = (byte)type;
     Utilities.FloatToBytes((float)dat1).CopyTo(Data, 1);
     pos.ToDoubleBytes().CopyTo(Data, 1 + 4);
 }
Пример #3
0
        public override Entity Create(Region tregion, BsonDocument doc)
        {
            ParticleEffectNetType efftype = (ParticleEffectNetType)Enum.Parse(typeof(ParticleEffectNetType), doc["sg_type"].AsString);
            SmokeGrenadeEntity    grenade = new SmokeGrenadeEntity(System.Drawing.Color.FromArgb(doc["sg_color"].AsInt32), tregion, efftype);

            grenade.SmokeLeft = doc["sg_smokeleft"].AsInt32;
            grenade.ApplyPhysicsData(doc);
            return(grenade);
        }
Пример #4
0
        public override Entity Create(Region tregion, BsonDocument doc)
        {
            ParticleEffectNetType efftype = (ParticleEffectNetType)Enum.Parse(typeof(ParticleEffectNetType), doc["sg_type"].AsString);
            SmokeGrenadeEntity    grenade = new SmokeGrenadeEntity(new Color4F((float)doc["sg_cr"].AsDouble, (float)doc["sg_cg"].AsDouble, (float)doc["sg_cb"].AsDouble, (float)doc["sg_ca"].AsDouble), tregion, efftype)
            {
                SmokeLeft = doc["sg_smokeleft"].AsInt32
            };

            grenade.ApplyPhysicsData(doc);
            return(grenade);
        }
Пример #5
0
        public override bool ParseBytesAndExecute(byte[] data)
        {
            if (data.Length != 1 + 4 + 24 &&
                data.Length != 1 + 4 + 24 + 24 &&
                data.Length != 1 + 4 + 24 + 24 + 24 + 4)
            {
                return(false);
            }
            ParticleEffectNetType type = (ParticleEffectNetType)data[0];
            float fdata1 = Utilities.BytesToFloat(Utilities.BytesPartial(data, 1, 4));
            // TODO: Particle effect registry!
            Location ldata2 = Location.Zero;
            Location ldata3 = Location.Zero;
            int      idata4 = 0;

            if (data.Length == 1 + 4 + 24 + 24)
            {
                ldata2 = Location.FromDoubleBytes(data, 1 + 4 + 24);
            }
            if (data.Length == 1 + 4 + 24 + 24 + 24 + 4)
            {
                ldata2 = Location.FromDoubleBytes(data, 1 + 4 + 24);
                ldata3 = Location.FromDoubleBytes(data, 1 + 4 + 24 + 24);
                idata4 = Utilities.BytesToInt(Utilities.BytesPartial(data, 1 + 4 + 24 + 24 + 24, 4));
            }
            Location pos = Location.FromDoubleBytes(data, 1 + 4);

            switch (type)
            {
            case ParticleEffectNetType.EXPLOSION:
                TheClient.Particles.Explode(pos, fdata1);
                break;

            case ParticleEffectNetType.SMOKE:
                TheClient.Particles.Smoke(pos, fdata1, ldata2);
                break;

            case ParticleEffectNetType.BIG_SMOKE:
                TheClient.Particles.BigSmoke(pos, fdata1, ldata2);
                break;

            case ParticleEffectNetType.PAINT_BOMB:
                TheClient.Particles.PaintBomb(pos, fdata1, ldata2);
                break;

            case ParticleEffectNetType.FIREWORK:
                TheClient.Particles.Firework(pos, fdata1, idata4, ldata2, ldata3);
                break;

            default:
                return(false);
            }
            return(true);
        }
Пример #6
0
        public override bool ParseBytesAndExecute(byte[] data)
        {
            if (data.Length != 1 + 4 + 24 &&
                data.Length != 1 + 4 + 24 + 24)
            {
                return(false);
            }
            ParticleEffectNetType type = (ParticleEffectNetType)data[0];
            float    fdata1            = Utilities.BytesToFloat(Utilities.BytesPartial(data, 1, 4));
            Location ldata2            = Location.NaN;

            if (data.Length == 1 + 4 + 24 + 24)
            {
                ldata2 = Location.FromDoubleBytes(data, 1 + 4 + 24);
            }
            Location pos = Location.FromDoubleBytes(data, 1 + 4);

            switch (type)
            {
            case ParticleEffectNetType.EXPLOSION:
                TheClient.Particles.Explode(pos, fdata1);
                break;

            case ParticleEffectNetType.SMOKE:
                TheClient.Particles.Smoke(pos, fdata1, ldata2);
                break;

            case ParticleEffectNetType.BIG_SMOKE:
                TheClient.Particles.BigSmoke(pos, fdata1, ldata2);
                break;

            case ParticleEffectNetType.PAINT_BOMB:
                TheClient.Particles.PaintBomb(pos, fdata1, ldata2);
                break;

            default:
                return(false);
            }
            return(true);
        }
Пример #7
0
 public SmokeGrenadeEntity(Color4F _col, Region tregion, ParticleEffectNetType smokeType) :
     base(tregion)
 {
     col       = _col;
     SmokeType = smokeType;
 }
Пример #8
0
 public SmokeGrenadeEntity(System.Drawing.Color _col, Region tregion, ParticleEffectNetType smokeType) :
     base(tregion)
 {
     col       = _col;
     SmokeType = smokeType;
 }
Пример #9
0
 public SmokeGrenadeEntity(System.Drawing.Color _col, Region tregion, ParticleEffectNetType smokeType)
     : base(tregion)
 {
     col = _col;
     SmokeType = smokeType;
 }