6eaba8a577
- primo rilascio.
63 lines
2.1 KiB
Lua
63 lines
2.1 KiB
Lua
-- ShowBuilding.lua by Egaltech s.r.l. 2018/11/21
|
|
-- Gestione visualizzazione travi come struttura
|
|
|
|
-- Intestazioni
|
|
require( 'EgtBase')
|
|
_ENV = EgtProtectGlobal()
|
|
EgtEnableDebug( false)
|
|
|
|
-- recupero il gruppo di assemblaggio
|
|
local AsseBaseId = EgtGetFirstNameInGroup( GDB_ID.ROOT, 'AsseBase')
|
|
if not AsseBaseId then return end
|
|
|
|
-- recupero il primo oggetto nel gruppo e verifico se devo assemblare o disassemblare
|
|
local AsseId = EgtGetFirstInGroup( AsseBaseId)
|
|
if not AsseId then return end
|
|
local bMake = ( EgtGetGroupObjs( AsseId) == 0)
|
|
|
|
-- ciclo sul gruppo di assemblaggio
|
|
while AsseId do
|
|
-- salvo il successivo nel gruppo dell'assemblato
|
|
local NextId = EgtGetNext( AsseId)
|
|
-- costruisco l'assemblato
|
|
if bMake then
|
|
-- recupero il pezzo sorgente
|
|
local SouId = EgtGetInfo( AsseId, GDB_SI.SOURCE, 'i')
|
|
if SouId then
|
|
EgtSetMode( SouId, GDB_MD.STD)
|
|
EgtSetStatus( SouId, GDB_ST.ON)
|
|
-- se già utilizzato, ne faccio una copia
|
|
if not EgtIsPart( SouId) then
|
|
local CopyId = EgtCopy( SouId, GDB_ID.ROOT)
|
|
if CopyId then
|
|
EgtRemoveInfo( CopyId, GDB_SI.BASE)
|
|
EgtRemoveInfo( CopyId, GDB_SI.LIST)
|
|
EgtSetInfo( CopyId, GDB_SI.COPY, SouId)
|
|
SouId = CopyId
|
|
EgtSetInfo( AsseId, GDB_SI.SOURCE, SouId)
|
|
end
|
|
end
|
|
EgtSetStatus( EgtGetFirstNameInGroup( SouId, 'Box') or GDB_ID.NULL, GDB_ST.OFF)
|
|
EgtGroupSwap( SouId, AsseId, true, true)
|
|
end
|
|
-- ritorno ai pezzi
|
|
else
|
|
local BasId = EgtGetInfo( AsseId, GDB_SI.BASE, 'i')
|
|
if BasId then
|
|
EgtGroupSwap( AsseId, BasId, true, true)
|
|
local CopId = EgtGetInfo( AsseId, GDB_SI.COPY, 'i')
|
|
if CopId then
|
|
EgtErase( AsseId)
|
|
EgtSetInfo( BasId, GDB_SI.SOURCE, CopId)
|
|
else
|
|
EgtSetStatus( EgtGetFirstNameInGroup( AsseId, 'Box') or GDB_ID.NULL, GDB_ST.ON)
|
|
end
|
|
end
|
|
end
|
|
-- passo al successivo
|
|
AsseId = NextId
|
|
end
|
|
|
|
EgtZoom( SCE_ZM.ALL)
|
|
|
|
-- end |