Untitled
unknown
plain_text
a year ago
2.3 kB
11
Indexable
function createLeafObject(rack)
local distance = 0.7
local initialOffset = -1.0
local rackPositions = {
{x = initialOffset, y = 0, z = rack.coords.z + 1.7},
{x = initialOffset + distance, y = 0, z = rack.coords.z + 1.7},
{x = initialOffset + 2 * distance, y = 0, z = rack.coords.z + 1.7},
{x = initialOffset + 3 * distance, y = 0, z = rack.coords.z + 1.7},
}
rack.leafObjects = {}
for _, leafData in ipairs(rack.dryingData) do
if not leafData.netId then
local weedTypeData = getWeedTypeByLeaf(leafData.leafType)
if not weedTypeData then
print("Error: Could not find weed type for leafType: " .. tostring(leafData.leafType))
return
end
local leafObject = weedTypeData.leafRackObject
if not leafObject then
print("Error: leafRackObject not found for leafType: " .. tostring(leafData.leafType))
return
end
local baseCoords = rackPositions[leafData.positionIndex]
local rotatedX, rotatedY = rotateAroundPoint(baseCoords.x, baseCoords.y, 0, 0, rack.currentHeading)
local finalCoords = {
x = rack.coords.x + rotatedX,
y = rack.coords.y + rotatedY,
z = baseCoords.z
}
local obj = CreateObjectNoOffset(leafObject, finalCoords.x, finalCoords.y, finalCoords.z, true, false, false)
if DoesEntityExist(obj) then
FreezeEntityPosition(obj, true)
SetEntityRotation(obj, 0.0, 0.0, rack.currentHeading + 90.0, 2, true)
local netId = NetworkGetNetworkIdFromEntity(obj)
leafData.netId = netId
leafData.object = leafObject
else
print("Error: Failed to create leaf object for leafType: " .. tostring(leafData.leafType))
end
end
table.insert(rack.leafObjects, leafData.netId)
end
if #rack.dryingData ~= #rack.leafObjects then
print("Warning: dryingData and leafObjects length mismatch for rack with netId " .. rack.netId)
end
saveRackData()
endEditor is loading...
Leave a Comment