Files
DataBeamWall/ShowBuilding.lua
Dario Sassi e6b0c4c5b4 DataBeamWall 2.7j1 :
- modifiche per nuova gestione assemblaggi
- aggiunto file versione.
2025-10-11 09:57:04 +02:00

60 lines
1.6 KiB
Lua

-- ShowBuilding.lua by Egaltech s.r.l. 2025/10/11
-- Gestione visualizzazione travi come struttura
-- Intestazioni
require( 'EgtBase')
_ENV = EgtProtectGlobal()
EgtEnableDebug( false)
-- Recupero elenco assemblaggi presenti
local AsseBaseId = EgtGetNameInGroup( GDB_ID.ROOT, 'AsseBase')
for i = #AsseBaseId, 1, -1 do
if EgtGetGroupObjs( AsseBaseId[i]) == 0 then
table.remove( AsseBaseId, i)
end
end
-- Se nessun assemblaggio, esco con avvertimento
if #AsseBaseId == 0 then
EgtOutBox( "There are no assemblies", 'ShowBuilding', 'WARNING', 'OK')
return
end
-- Se un solo assemblaggio
if #AsseBaseId == 1 then
-- Recupero l'attivazione dell'assemblaggio
local bOn = EgtBeamGetBuildingIsOn()
-- Modifico lo stato dell'assemblaggio
EgtBeamShowBuilding( not bOn)
-- altrimenti più assemblaggi
else
-- Recupero gli assemblaggi attivi
local On = {}
for i = 1, #AsseBaseId do
if EgtBeamGetBuildingIsOn( AsseBaseId[i]) then
table.insert( On, i)
end
end
-- Se almeno uno attivo, li spengo tutti
if #On > 0 then
for j = 1, #On do
EgtBeamShowBuilding( AsseBaseId[On[j]], false)
end
-- altrimenti chiedo quale attivare
else
local sCombo = 'CB:1'
for i = 2, #AsseBaseId do
sCombo = sCombo .. ',' .. tostring( i)
end
local Res = EgtDialogBox( 'Choose Assembly', { 'To Activate', sCombo})
if Res then
local nId = tonumber( Res[1])
EgtBeamShowBuilding( AsseBaseId[nId], true)
end
end
end
EgtZoom( SCE_ZM.ALL)
-- end