public void FromBytes(BinaryReader reader, IWorldAccessor resolver) { basePos = new Vec3d(reader.ReadDouble(), reader.ReadDouble(), reader.ReadDouble()); DieInAir = reader.ReadBoolean(); DieInLiquid = reader.ReadBoolean(); SwimOnLiquid = reader.ReadBoolean(); HsvaColor = new NatFloat[] { NatFloat.createFromBytes(reader), NatFloat.createFromBytes(reader), NatFloat.createFromBytes(reader), NatFloat.createFromBytes(reader) }; GravityEffect = NatFloat.createFromBytes(reader); LifeLength = NatFloat.createFromBytes(reader); PosOffset = new NatFloat[] { NatFloat.createFromBytes(reader), NatFloat.createFromBytes(reader), NatFloat.createFromBytes(reader) }; Quantity = NatFloat.createFromBytes(reader); Size = NatFloat.createFromBytes(reader); Velocity = new NatFloat[] { NatFloat.createFromBytes(reader), NatFloat.createFromBytes(reader), NatFloat.createFromBytes(reader) }; ParticleModel = (EnumParticleModel)reader.ReadByte(); VertexFlags = reader.ReadInt32(); if (!reader.ReadBoolean()) { OpacityEvolve = EvolvingNatFloat.CreateFromBytes(reader); } if (!reader.ReadBoolean()) { RedEvolve = EvolvingNatFloat.CreateFromBytes(reader); } if (!reader.ReadBoolean()) { GreenEvolve = EvolvingNatFloat.CreateFromBytes(reader); } if (!reader.ReadBoolean()) { BlueEvolve = EvolvingNatFloat.CreateFromBytes(reader); } SizeEvolve.FromBytes(reader); SelfPropelled = reader.ReadBoolean(); TerrainCollision = reader.ReadBoolean(); ColorByBlock = reader.ReadBoolean(); if (reader.ReadBoolean()) { VelocityEvolve = new EvolvingNatFloat[] { EvolvingNatFloat.createIdentical(0), EvolvingNatFloat.createIdentical(0), EvolvingNatFloat.createIdentical(0), }; VelocityEvolve[0].FromBytes(reader); VelocityEvolve[1].FromBytes(reader); VelocityEvolve[2].FromBytes(reader); } SecondarySpawnInterval = NatFloat.createFromBytes(reader); int secondaryPropCount = reader.ReadInt32(); if (secondaryPropCount > 0) { SecondaryParticles = new AdvancedParticleProperties[secondaryPropCount]; for (int i = 0; i < secondaryPropCount; i++) { SecondaryParticles[i] = AdvancedParticleProperties.createFromBytes(reader, resolver); } } int deathPropCount = reader.ReadInt32(); if (deathPropCount > 0) { DeathParticles = new AdvancedParticleProperties[deathPropCount]; for (int i = 0; i < deathPropCount; i++) { DeathParticles[i] = AdvancedParticleProperties.createFromBytes(reader, resolver); } } WindAffectednes = reader.ReadSingle(); }
public void ToBytes(BinaryWriter writer) { writer.Write(MinQuantity); writer.Write(AddQuantity); MinPos.ToBytes(writer); AddPos.ToBytes(writer); MinVelocity.ToBytes(writer); AddVelocity.ToBytes(writer); writer.Write(LifeLength); writer.Write(GravityEffect); writer.Write(MinSize); writer.Write(MaxSize); writer.Write(Color); writer.Write(VertexFlags); writer.Write((int)ParticleModel); writer.Write(ShouldDieInAir); writer.Write(ShouldDieInLiquid); writer.Write(OpacityEvolve == null); if (OpacityEvolve != null) { OpacityEvolve.ToBytes(writer); } writer.Write(RedEvolve == null); if (RedEvolve != null) { RedEvolve.ToBytes(writer); } writer.Write(GreenEvolve == null); if (GreenEvolve != null) { GreenEvolve.ToBytes(writer); } writer.Write(BlueEvolve == null); if (BlueEvolve != null) { BlueEvolve.ToBytes(writer); } writer.Write(SizeEvolve == null); if (SizeEvolve != null) { SizeEvolve.ToBytes(writer); } writer.Write(SelfPropelled); writer.Write(ColorByBlock == null); if (ColorByBlock != null) { writer.Write(ColorByBlock.BlockId); } writer.Write(ClimateColorMap == null); if (ClimateColorMap != null) { writer.Write(ClimateColorMap); } writer.Write(SeasonColorMap == null); if (SeasonColorMap != null) { writer.Write(SeasonColorMap); } }
public void ToBytes(BinaryWriter writer) { writer.Write(basePos.X); writer.Write(basePos.Y); writer.Write(basePos.Z); writer.Write(DieInAir); writer.Write(DieInLiquid); writer.Write(SwimOnLiquid); for (int i = 0; i < 4; i++) { HsvaColor[i].ToBytes(writer); } GravityEffect.ToBytes(writer); LifeLength.ToBytes(writer); for (int i = 0; i < 3; i++) { PosOffset[i].ToBytes(writer); } Quantity.ToBytes(writer); Size.ToBytes(writer); for (int i = 0; i < 3; i++) { Velocity[i].ToBytes(writer); } writer.Write((byte)ParticleModel); writer.Write(VertexFlags); writer.Write(OpacityEvolve == null); if (OpacityEvolve != null) { OpacityEvolve.ToBytes(writer); } writer.Write(RedEvolve == null); if (RedEvolve != null) { RedEvolve.ToBytes(writer); } writer.Write(GreenEvolve == null); if (GreenEvolve != null) { GreenEvolve.ToBytes(writer); } writer.Write(BlueEvolve == null); if (BlueEvolve != null) { BlueEvolve.ToBytes(writer); } SizeEvolve.ToBytes(writer); writer.Write(SelfPropelled); writer.Write(TerrainCollision); writer.Write(ColorByBlock); writer.Write(VelocityEvolve != null); if (VelocityEvolve != null) { for (int i = 0; i < 3; i++) { VelocityEvolve[i].ToBytes(writer); } } SecondarySpawnInterval.ToBytes(writer); if (SecondaryParticles == null) { writer.Write(0); } else { writer.Write(SecondaryParticles.Length); for (int i = 0; i < SecondaryParticles.Length; i++) { SecondaryParticles[i].ToBytes(writer); } } if (DeathParticles == null) { writer.Write(0); } else { writer.Write(DeathParticles.Length); for (int i = 0; i < DeathParticles.Length; i++) { DeathParticles[i].ToBytes(writer); } } writer.Write(WindAffectednes); }