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);
        }
Exemplo n.º 2
0
        public void CanCloneEntityWithPrimitives()
        {
            ICloneFactory testObject = TestServiceProvider.GetRequiredService <ICloneFactory>();

            PrimitiveEntity actual = testObject.Clone(TestPrimitiveEntity);

            VerifyPrimitiveEntityWasCloned(actual);
        }
Exemplo n.º 3
0
 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);
 }
Exemplo n.º 4
0
 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);
 }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
 public PrimitiveEntityTag(PrimitiveEntity ent)
 {
     Internal = ent;
 }
Exemplo n.º 7
0
        public void CloneReturnsDelegateResult()
        {
            PrimitiveEntity actual = TestObject.Clone(TestEntity);

            Assert.AreSame(TestClonedEntity, actual);
        }
Exemplo n.º 8
0
 public void DealDamage(PrimitiveEntity target)
 {
     target.stats.HP -= bluntDamage;
     target.stats.HP -= Convert.ToInt16(damage * 1);
 }