Skip to content

Commit

Permalink
[Added] Interior change event
Browse files Browse the repository at this point in the history
  • Loading branch information
Patrick2562 committed Apr 7, 2021
1 parent 1d4f84b commit 3554a2d
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 6 deletions.
17 changes: 15 additions & 2 deletions client.lua
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ local setMatrix = setElementMatrix
local setPosition = setElementPosition
local setDimension = setElementDimension
local getDimension = getElementDimension
local setInterior = setElementInterior
local getInterior = getElementInterior
local setAlpha = setElementAlpha
local getBoneMatrix = getElementBoneMatrix
local setCollisions = setElementCollisionsEnabled
Expand All @@ -30,14 +32,15 @@ pAttach = {
pedsProcessedAdded = false,

attach = function(self, element, ped, _boneid, ox, oy, oz, rx, ry, rz)
boneid = type(_boneid) == "number" and _boneid or (boneIDNames[_boneid] or false)
local boneid = type(_boneid) == "number" and _boneid or (boneIDNames[_boneid] or false)
assert(isElement(element), "Expected element at argument 1, got "..type(element))
assert(isElement(ped), "Expected element at argument 2, got "..type(ped))
assert(boneid, "Expected number or Bone-name at argument 3, got "..type(_boneid))
assert(boneid, "Expected number or bone-name at argument 3, got "..type(_boneid))
if self:isAttached(element) then return false end

setPosition(element, 0, 0, 10000)
setDimension(element, getDimension(ped))
setInterior(element, getInterior(ped))
setCollisions(element, false)

local pedIns = self.pedInstances[ped]
Expand All @@ -51,6 +54,7 @@ pAttach = {
addEventHandler("onClientElementStreamOut", ped, self.onStreamOut)
end
addEventHandler("onClientElementDimensionChange", ped, self.onDimensionChange)
addEventHandler("onClientElementInteriorChange", ped, self.onInteriorChange)
else
pedIns.count = pedIns.count + 1
end
Expand Down Expand Up @@ -91,6 +95,7 @@ pAttach = {
removeEventHandler("onClientElementStreamIn", ped, self.onStreamIn)
removeEventHandler("onClientElementStreamOut", ped, self.onStreamOut)
removeEventHandler("onClientElementDimensionChange", ped, self.onDimensionChange)
removeEventHandler("onClientElementInteriorChange", ped, self.onInteriorChange)
end
self.pedInstances[ped] = nil
self:removeFromStream(ped)
Expand Down Expand Up @@ -200,6 +205,14 @@ pAttach = {
end
end
end,

onInteriorChange = function(old, new)
if pAttach.pedInstances[source] then
for element in pairs(pAttach.pedInstances[source].list) do
setInterior(element, new)
end
end
end,

onElementDestroy = function()
pAttach:detach(source)
Expand Down
10 changes: 8 additions & 2 deletions exports.lua
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,10 @@ else
return triggerClientEvent("pAttach:attach", resourceRoot, element, ...)
end

function detach(element, ...)
function detach(element)
assert(isElement(element), "Expected element at argument 1, got "..type(element))
cache[element] = nil
return triggerClientEvent("pAttach:detach", resourceRoot, element, ...)
return triggerClientEvent("pAttach:detach", resourceRoot, element)
end

function detachAll(ped)
Expand Down Expand Up @@ -133,4 +133,10 @@ else
end
end
end)

addEventHandler("onElementDestroy", root, function()
if cache[source] then
detach(source)
end
end)
end
4 changes: 2 additions & 2 deletions meta.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<meta>
<info author="!Patrick" name="pAttach" type="script" version="1.1.2"/>
<min_mta_version client="1.5.8-0.20704" />
<info author="!Patrick" name="pAttach" type="script" version="1.1.3"/>
<min_mta_version client="1.5.8-0.20837" />
<oop>true</oop>

<script src="client.lua" type="client" />
Expand Down

0 comments on commit 3554a2d

Please sign in to comment.