forked from multitheftauto/mtasa-resources
-
Notifications
You must be signed in to change notification settings - Fork 0
/
EDFhandler.lua
61 lines (56 loc) · 2.2 KB
/
EDFhandler.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
local clientGUILoaded = {} --We dont want to trigger client events if they havent downloaded client scripts yet
loadedEDF = {}
addEventHandler ( "onResourceStart", resourceRoot,
function(resource)
if getResourceState( edf.res ) == "running" then
local definitionsList = edf.edfGetLoadedEDFResources()
for index, resource2 in ipairs(definitionsList) do
registerEDF( resource2 )
end
end
if resource == thisResource then
if not hasObjectPermissionTo(thisResource, "general.ModifyOtherObjects") then
outputChatBox("** WARNING: Resource editor_main hasn't access to the ModifyOtherObjects ACL right. ",
root, 255, 50, 50)
outputChatBox("** You won't be able to work with maps or EDFs unless you change it!",
root, 255, 50, 50)
outputDebugString("** Resource editor_main hasn't access to the ModifyOtherObjects ACL right. ",
2, 255, 50, 50)
outputDebugString("** You won't be able to work with maps or EDFs unless you change it!",
2, 255, 50, 50)
end
end
end
)
function registerEDF( resource )
--ignore edf
if resource == edf.res then
return
end
loadedEDF[resource] = edf.edfGetDefinition(resource)
for i, player in ipairs(getElementsByType"player") do
if clientGUILoaded[player] then
triggerClientEvent ( player, "doLoadEDF", root, loadedEDF[resource], getResourceName ( resource ) )
end
end
end
addEventHandler ( "onEDFLoad", root, registerEDF)
addEventHandler ( "onEDFUnload", root,
function ( resource )
if not loadedEDF[resource] then return end -- Only unload if the EDF has been loaded
loadedEDF[resource] = nil
for i, player in ipairs(getElementsByType"player") do
if clientGUILoaded[player] then
triggerClientEvent ( player, "doUnloadEDF", root, getResourceName ( resource ) )
end
end
end
)
local function sendEDF()
clientGUILoaded[source] = true
for resource, resourceDefinition in pairs(loadedEDF) do
triggerClientEvent ( source, "doLoadEDF", root, resourceDefinition, getResourceName ( resource ) )
end
end
addEventHandler ( "onClientGUILoaded", root, sendEDF)
addEventHandler ( "onClientRequestEDF", root, sendEDF)