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); }
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); }
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); }
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); }
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); }
public SmokeGrenadeEntity(Color4F _col, Region tregion, ParticleEffectNetType smokeType) : base(tregion) { col = _col; SmokeType = smokeType; }
public SmokeGrenadeEntity(System.Drawing.Color _col, Region tregion, ParticleEffectNetType smokeType) : base(tregion) { col = _col; SmokeType = smokeType; }