public override bool ParseBytesAndExecute(byte[] data) { if (data.Length != 24 + 24 + 16 + 24 + 8) { return(false); } Location pos = Location.FromDoubleBytes(data, 0); Location vel = Location.FromDoubleBytes(data, 24); BEPUutilities.Quaternion ang = Utilities.BytesToQuaternion(data, 24 + 24); Location grav = Location.FromDoubleBytes(data, 24 + 24 + 16); long eID = Utilities.BytesToLong(Utilities.BytesPartial(data, 24 + 24 + 16 + 24, 8)); for (int i = 0; i < TheClient.TheRegion.Entities.Count; i++) { if (TheClient.TheRegion.Entities[i] is PrimitiveEntity) { PrimitiveEntity e = (PrimitiveEntity)TheClient.TheRegion.Entities[i]; if (e.EID == eID) { e.SetPosition(pos); e.SetVelocity(vel); e.Angles = ang; e.Gravity = grav; return(true); } } } TheClient.Network.SendPacket(new PleaseRedefinePacketOut(eID)); return(true); }
public void CanCloneEntityWithPrimitives() { ICloneFactory testObject = TestServiceProvider.GetRequiredService <ICloneFactory>(); PrimitiveEntity actual = testObject.Clone(TestPrimitiveEntity); VerifyPrimitiveEntityWasCloned(actual); }
public PrimitiveEntityUpdatePacketOut(PrimitiveEntity pe) { UsageType = NetUsageType.ENTITIES; ID = ServerToClientPacket.PRIMITIVE_ENTITY_UPDATE; Data = new byte[24 + 24 + 16 + 24 + 8]; pe.GetPosition().ToDoubleBytes().CopyTo(Data, 0); pe.GetVelocity().ToDoubleBytes().CopyTo(Data, 24); Utilities.QuaternionToBytes(pe.Angles).CopyTo(Data, 24 + 24); pe.Gravity.ToDoubleBytes().CopyTo(Data, 24 + 24 + 16); Utilities.LongToBytes(pe.EID).CopyTo(Data, 24 + 24 + 16 + 24); }
private void VerifyPrimitiveEntityWasCloned(PrimitiveEntity actual) { Assert.AreNotSame(TestPrimitiveEntity, actual); Assert.AreEqual(TestPrimitiveEntity.TestByte, actual.TestByte); Assert.AreEqual(TestPrimitiveEntity.TestShort, actual.TestShort); Assert.AreEqual(TestPrimitiveEntity.TestInt, actual.TestInt); Assert.AreEqual(TestPrimitiveEntity.TestLong, actual.TestLong); Assert.AreEqual(TestPrimitiveEntity.TestDateTime, actual.TestDateTime); Assert.AreEqual(TestPrimitiveEntity.TestDateTimeOffset, actual.TestDateTimeOffset); Assert.AreEqual(TestPrimitiveEntity.TestString, actual.TestString); }
public void TestPrimitives() { var original = new PrimitiveEntity { IntProp = 1, BoolProp = true, DoubleProp = 3d, DateTimeProp = new DateTime(2017, 5, 3), NullableIntProp = null, StringProp = "originalString" }; var patch = new PrimitiveEntity { IntProp = 2, BoolProp = false, DoubleProp = 4d, StringProp = "changedString", DateTimeProp = new DateTime(2018, 2, 2), NullableIntProp = 2 }; NextApiUtils.PatchEntity(patch, original); original.ShouldDeepEqual(patch); }
public PrimitiveEntityTag(PrimitiveEntity ent) { Internal = ent; }
public void CloneReturnsDelegateResult() { PrimitiveEntity actual = TestObject.Clone(TestEntity); Assert.AreSame(TestClonedEntity, actual); }
public void DealDamage(PrimitiveEntity target) { target.stats.HP -= bluntDamage; target.stats.HP -= Convert.ToInt16(damage * 1); }