DataBeam :
- primo rilascio.
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
-- 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
|
||||
Reference in New Issue
Block a user