Example #1
0
        public PropertiesPosition Clone()
        {
            var result = new PropertiesPosition
            {
                ObjCellId = ObjCellId,
                PositionX = PositionX,
                PositionY = PositionY,
                PositionZ = PositionZ,
                RotationW = RotationW,
                RotationX = RotationX,
                RotationY = RotationY,
                RotationZ = RotationZ,
            };

            return(result);
        }
        public static void SetProperty(this Biota biota, PositionType property, PropertiesPosition value, ReaderWriterLockSlim rwLock)
        {
            rwLock.EnterWriteLock();
            try
            {
                if (biota.PropertiesPosition == null)
                {
                    biota.PropertiesPosition = new Dictionary <PositionType, PropertiesPosition>();
                }

                biota.PropertiesPosition[property] = value;
            }
            finally
            {
                rwLock.ExitWriteLock();
            }
        }
        public static void SetPosition(this Biota biota, PositionType property, Position value, ReaderWriterLockSlim rwLock)
        {
            rwLock.EnterWriteLock();
            try
            {
                if (biota.PropertiesPosition == null)
                {
                    biota.PropertiesPosition = new Dictionary <PositionType, PropertiesPosition>();
                }

                var entity = new PropertiesPosition {
                    ObjCellId = value.ObjCellID, PositionX = value.Pos.X, PositionY = value.Pos.Y, PositionZ = value.Pos.Z, RotationW = value.Rotation.W, RotationX = value.Rotation.X, RotationY = value.Rotation.Y, RotationZ = value.Rotation.Z, Instance = value.Instance
                };

                biota.PropertiesPosition[property] = entity;
            }
            finally
            {
                rwLock.ExitWriteLock();
            }
        }