GetMouseHitLocation

From Onset Developer Wiki
GetMouseHitLocation

Type: Function
Context: Client
Introduced: v1.0

Description

Gets the X, Y, Z world location below the mouse cursor. This basically traces from the position of the mouse cursor to the next colliding geometry in world space.

To get the entity use GetMouseHitEntity.

Syntax

GetMouseHitLocation()

Parameters

  • This function has no parameters.

Return Value

  • Returns 4 float values, X, Y, Z and distance.

Example

Example from the map editor package. https://github.com/BlueMountainsIO/OnsetLuaScripts/blob/master/mapeditor/client/editor.lua

function OnKeyPress(key)
	if key == "Left Mouse Button" then
		if IsEditMode then
			local x, y, z, distance = GetMouseHitLocation()
			AddPlayerChat("Hit: "..x..", "..y..", "..z..", "..distance)

			-- if selected location is not valid (i.e. clicking sky) 0.0 is returned. we set it to something high so the check is triggered later on.
			if distance == 0.0 then
				distance = 999999.9
			end

			SelectedLoc.x = x
			SelectedLoc.y = y
			SelectedLoc.z = z
			SelectedLoc.distance = distance
			SelectedLoc.isValid = true

			local EntityType, EntityId = GetMouseHitEntity()
			if (EntityType == HIT_OBJECT) then
				if (EntityId ~= 0 and SelectedObject ~= EntityId) then
					SelectEditorObject(EntityId)
				end
			end
		end
	end
end
AddEvent("OnKeyPress", OnKeyPress)

See also