-- LUA Script - precede every function and global member with lowercase name of script + '_main' local U = require "scriptbank\\utillib" local dynEnts = {} function bookcase_items_init_name( e, name ) Include( "utillib.lua" ) dynEnts[ e ] = { entD = e, entB = nil, name = name, used = false, showing = false, list = nil } end function BC_Register( entity, name ) local bx, by, bz = GetEntityPosAng( entity ) for k, v in pairs( dynEnts ) do if v.name == name and not v.used then local dx, dy, dz = GetEntityPosAng( k ) if U.CloserThan( bx, by, bz, dx, dy, dz, 200 ) then dynEnts[ k ].used = true dynEnts[ k ].entB = entity dynEnts[ k ].list = { xo = dx - bx, yo = dy - by, zo = dz - bz } end end end end local function repositionDE( de, nx, ny, nz ) local dl = de.list ResetPosition( de.entD, nx + dl.xo, ny + dl.yo, nz + dl.zo ) end function BC_Update( entity, x, y, z ) for k, v in pairs( dynEnts ) do if v.used and v.entB == entity then repositionDE( v, x, y, z ) end end end function bookcase_items_main( e ) end