GE Lua Documentation

Press F to search!

getTerrain

Definition


-- @/lua/ge/extensions/core/terrain.lua:9

local function getTerrain()
  local terrain = terrainId and scenetree.findObjectById(terrainId)
  if not terrain then
    local terrains = scenetree.findClassObjects("TerrainBlock")
    if next(terrains) then
      terrain = scenetree.findObject(terrains[1])
      terrainId = terrain:getId()
    end
  end
  return terrain
end

Callers

@/lua/ge/extensions/util/forestGenerator.lua

    if core_terrain.getTerrain() then
      data.pos.z = core_terrain.getTerrainHeight(data.pos)

    if core_terrain.getTerrain() then
      data.pos.z = core_terrain.getTerrainHeight(data.pos)
@/lua/ge/extensions/flowgraph/nodes/gameplay/decalLine.lua

    -- if self.data.snapToTerrain and core_terrain and core_terrain.getTerrain() then
    --   data.position.z = core_terrain.getTerrainHeight(data.position)
@/gameplay/missionTypes/scatterPickup/customNodes/scatterStuffInZonesNode.lua
          local z = zone.center.z
          if core_terrain.getTerrain() and core_terrain.getTerrainHeight(blue) > 0 then
            z = core_terrain.getTerrainHeight(blue)
@/lua/ge/extensions/core/cameraModes/bigMap.lua
local function getRayCastHit(ray, relativeToCam)
  local dist = intersectsRay_Plane(ray.pos, ray.dir, core_terrain.getTerrain() and core_terrain.getTerrain():getWorldBox().minExtents or vec3(0,0,0), vec3(0,0,1))
  local hitPoint = ray.pos + ray.dir * dist
local function getRayCastHit(ray, relativeToCam)
  local dist = intersectsRay_Plane(ray.pos, ray.dir, core_terrain.getTerrain() and core_terrain.getTerrain():getWorldBox().minExtents or vec3(0,0,0), vec3(0,0,1))
  local hitPoint = ray.pos + ray.dir * dist
@/lua/ge/extensions/editor/api/roadRiver.lua
  road:setField("material", 0, "BlankWhite")
  if not core_terrain.getTerrain() then
    road:setField("overObjects", 0, "true")
@/lua/ge/extensions/core/terrain.lua
local function getTerrainHeight(point)
  local terrain = getTerrain()
  if terrain then
local function getTerrainNormal(point)
  local terrain = getTerrain()
  if terrain then
local function getTerrainSmoothNormal(point)
  local terrain = getTerrain()
  if terrain then
@/lua/ge/extensions/flowgraph/nodes/gameplay/decalCircle.lua

    -- if self.data.snapToTerrain and core_terrain and core_terrain.getTerrain() then
    --   data.position.z = core_terrain.getTerrainHeight(data.position)
@/lua/ge/extensions/core/multiSpawn.lua
    pos.z = z
  elseif core_terrain.getTerrain() then
    pos.z = core_terrain.getTerrainHeight(pos)
@/lua/ge/extensions/gameplay/traffic/vehicle.lua
      local isDaytime = self:checkTimeOfDay()
      local terrainHeight = core_terrain.getTerrain() and core_terrain.getTerrainHeight(self.pos) or 0
      local terrainHeightDefault = core_terrain.getTerrain() and core_terrain.getTerrain():getPosition().z or 0
      local terrainHeight = core_terrain.getTerrain() and core_terrain.getTerrainHeight(self.pos) or 0
      local terrainHeightDefault = core_terrain.getTerrain() and core_terrain.getTerrain():getPosition().z or 0
      local isTunnel = self.pos.z < terrainHeight
      local terrainHeight = core_terrain.getTerrain() and core_terrain.getTerrainHeight(self.pos) or 0
      local terrainHeightDefault = core_terrain.getTerrain() and core_terrain.getTerrain():getPosition().z or 0
      local isTunnel = self.pos.z < terrainHeight
@/lua/ge/extensions/editor/masterSpline/splineMgr.lua
          local nodes, nmls = spline.nodes, spline.nmls
          local terrain = core_terrain.getTerrain()
          if terrain then
@/lua/ge/extensions/editor/api/gizmo.lua
    else
      if core_terrain.getTerrain() then
        initialGizmoTerrainOffset = gizmoPos.z - core_terrain.getTerrainHeight(gizmoPos)
        else
          if core_terrain.getTerrain() then
            objectTerrainOffsets[index] = objPos.z - core_terrain.getTerrainHeight(objPos)
    else
      if core_terrain.getTerrain() then
        newGizmoTerrainHeight = core_terrain.getTerrainHeight(newGizmoPos)
@/lua/ge/extensions/editor/toolUtilities/geom.lua
local function catmullRomConformToTerrain(spline, minNumDivIn)
  local terrain = core_terrain.getTerrain()
  if not terrain then
@/lua/ge/extensions/util/terrainGenerator.lua
  local height = 0
  if core_terrain.getTerrain() then
    height = core_terrain.getTerrain():getHeightScaleUser()
  if core_terrain.getTerrain() then
    height = core_terrain.getTerrain():getHeightScaleUser()
  end
function C:setTerrainOffset(vec) -- sets a new position for the terrain block (vec3(0, 0, 0) is the corner of the terrain block)
  if core_terrain.getTerrain() then
    core_terrain.getTerrain():setPosition(vec)
  if core_terrain.getTerrain() then
    core_terrain.getTerrain():setPosition(vec)
    be:reloadCollision()
function C:centerTerrain() -- makes the origin the center of the terrain block
  if core_terrain.getTerrain() then
    local n = core_terrain.getTerrain():getWorldBlockSize() * -0.5
  if core_terrain.getTerrain() then
    local n = core_terrain.getTerrain():getWorldBlockSize() * -0.5
    self:setTerrainOffset(vec3(n, n, 0))
function C:resetTerrain(deleteOnly) -- resets the terrain block
  local terrain = core_terrain.getTerrain()
  if terrain then terrain:delete() end

  local terrain = core_terrain.getTerrain()
  if terrain then
  if not matData then -- if no material data exists, try to get it from the existing terrain
    if core_terrain.getTerrain() then
      for _, m in ipairs(core_terrain.getTerrain():getMaterials()) do -- get all existing materials from terrain
    if core_terrain.getTerrain() then
      for _, m in ipairs(core_terrain.getTerrain():getMaterials()) do -- get all existing materials from terrain
        if m:getInternalName() ~= 'warning_material' then -- always ignore warning material

  if not self.terrainId and core_terrain.getTerrain() then
    log('I', logTag, 'Base terrain found, now deleting it in order to create custom terrain')
  self.terrainId = nil
  local terrain = core_terrain.getTerrain()
  local terrainBitmap = GBitmap()
@/lua/ge/extensions/gameplay/parking.lua
    debugDrawer:drawCylinder(lastPos, lastPos + vecUpHigh, 0.25, ColorF(0, 1, 0, 0.5))
    if core_terrain.getTerrain() then
      lastPos.z = core_terrain.getTerrainHeight(lastPos)
@/lua/ge/extensions/editor/objectToSplineEditor.lua
  local points = {}
  local hasTerrain = core_terrain.getTerrain() and true or false
@/lua/ge/extensions/editor/util/transformUtil.lua
function C:helperPositionDownToTerrain()
  if not core_terrain.getTerrain() then return end
  self:set(vec3(self.pos.x, self.pos.y, core_terrain.getTerrainHeight(self.pos) or self.pos.z))
function C:helperAlignWithTerrain()
  if not core_terrain.getTerrain() then return end
  local terrainNormal = core_terrain.getTerrainSmoothNormal(self.pos)
@/lua/ge/extensions/editor/forestEditor.lua
            end
            editor.drawBrush('ellipse', hit.pos, editor.getPreference("forestEditor.general.brushSize") / 2, nil, color, core_terrain.getTerrain())
            local cam = getCameraMouseRay()
@/lua/ge/extensions/freeroam/bigMapMode.lua
  local bbox
  if core_terrain.getTerrain() then
    bbox = core_terrain.getTerrain():getWorldBox()
  if core_terrain.getTerrain() then
    bbox = core_terrain.getTerrain():getWorldBox()
    includeClustersInBbox(bbox)
@/lua/ge/extensions/editor/gen/terrain.lua

    local trn = core_terrain.getTerrain()
    if not trn then return end
@/lua/ge/extensions/ui/apps/minimap/topomap.lua
  local scanPos = vec3()
  local terrain = core_terrain.getTerrain()
@/lua/ge/extensions/editor/trafficSignalsEditor.lua
    if im.Button("Down to Terrain##instance") then
      if core_terrain.getTerrain() then
        signalPos[2] = core_terrain.getTerrainHeight(currInstance.pos)
@/lua/ge/extensions/editor/audioRibbonEditor.lua
    -- For each ribbon node, check both terrain and river surfaces.
    local terrain = core_terrain.getTerrain()
    local nodes = ribbon.nodes