public static bool HasFlag(this ItemCollisionType value, ItemCollisionType comparison) { if ((value & comparison) == comparison) { return(true); } else { return(false); } }
public static ItemCollisionType CheckAllCollisionsTree(Vector3 worldPosition, TreeInfo treeInfo) { ItemCollisionType _result = ItemCollisionType.None; Vector2 _center = VectorUtils.XZ(worldPosition); float _radius = 0.5f; Quad2 _quad = default(Quad2); _quad.a = _center + new Vector2(-_radius, -_radius); _quad.b = _center + new Vector2(-_radius, _radius); _quad.c = _center + new Vector2(_radius, _radius); _quad.d = _center + new Vector2(_radius, -_radius); float _minY = worldPosition.y; float _maxY = worldPosition.y + treeInfo.m_generatedInfo.m_size.y * Mathf.Max(treeInfo.m_maxScale, treeInfo.m_minScale); ItemClass.CollisionType _collisionType = ItemClass.CollisionType.Terrain; if (DoesTreeCollideWithProps(_quad, _minY, _maxY, _collisionType, treeInfo)) { _result |= ItemCollisionType.Props; } if (DoesTreeCollideWithTrees(_quad, _minY, _maxY, _collisionType, treeInfo)) { _result |= ItemCollisionType.Trees; } if (CheckTreeBlocked(_quad, _minY, _maxY, _collisionType, treeInfo)) { _result |= ItemCollisionType.Blocked; } if (DoesPositionHaveWater(worldPosition)) { _result |= ItemCollisionType.Water; } if (IsQuadOutOfGameArea(_quad)) { _result |= ItemCollisionType.GameArea; } return(_result); }