예제 #1
0
        public bool CheckRot(ObjectCtrl _objectCtrl)
        {
            Vector3 zero1 = Vector3.get_zero();
            Vector3 zero2 = Vector3.get_zero();

            _objectCtrl.GetLocalMinMax(_objectCtrl.Position, _objectCtrl.Rotation, this.TransformRoot, ref zero1, ref zero2);
            Vector3Int vector3Int1;

            ((Vector3Int) ref vector3Int1).\u002Ector(this.FloorToInt((float)zero1.x), this.FloorToInt((float)zero1.y), this.FloorToInt((float)zero1.z));
            Vector3Int vector3Int2;

            ((Vector3Int) ref vector3Int2).\u002Ector(this.FloorToInt((float)zero2.x), this.FloorToInt((float)zero2.y), this.FloorToInt((float)zero2.z));
            Vector3 vector3 = Vector3.op_Multiply(this.GridArea, 0.5f);

            return(-vector3.x <= (double)((Vector3Int) ref vector3Int1).get_x() && vector3.x >= (double)((Vector3Int) ref vector3Int2).get_x() && 0 <= ((Vector3Int) ref vector3Int1).get_y() && (this.GridArea.y >= (double)((Vector3Int) ref vector3Int2).get_y() && -vector3.z <= (double)((Vector3Int) ref vector3Int1).get_z() && vector3.z >= (double)((Vector3Int) ref vector3Int2).get_z()));
        }
예제 #2
0
        public bool CorrectPos(ObjectCtrl _objectCtrl, ref Vector3 _pos)
        {
            Vector3 zero1 = Vector3.get_zero();
            Vector3 zero2 = Vector3.get_zero();

            _objectCtrl.GetLocalMinMax(_pos, _objectCtrl.Rotation, this.TransformRoot, ref zero1, ref zero2);
            Vector3 vector3 = Vector3.op_Multiply(this.GridArea, 0.5f);
            Vector3 zero3   = Vector3.get_zero();
            bool    flag    = false;

            if (-vector3.x > zero1.x)
            {
                zero3.x = vector3.x + zero1.x;
                flag    = ((flag ? 1 : 0) | 1) != 0;
            }
            else if (vector3.x < zero2.x)
            {
                zero3.x = zero2.x - vector3.x;
                flag    = ((flag ? 1 : 0) | 1) != 0;
            }
            if (0.0 > zero1.y)
            {
                zero3.y = zero1.y;
                flag    = ((flag ? 1 : 0) | 1) != 0;
            }
            else if (this.GridArea.y < zero2.y)
            {
                zero3.y = zero2.y - this.GridArea.y;
                flag    = ((flag ? 1 : 0) | 1) != 0;
            }
            if (-vector3.z > zero1.z)
            {
                zero3.z = vector3.z + zero1.z;
                flag    = ((flag ? 1 : 0) | 1) != 0;
            }
            else if (vector3.z < zero2.z)
            {
                zero3.z = zero2.z - vector3.z;
                flag    = ((flag ? 1 : 0) | 1) != 0;
            }
            _pos = Vector3.op_Subtraction(_pos, this.TransformRoot.TransformVector(zero3));
            return(flag);
        }