mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-18 06:03:47 +03:00
Upload
This commit is contained in:
114
lua/pac3/core/client/tests/events.lua
Normal file
114
lua/pac3/core/client/tests/events.lua
Normal file
@@ -0,0 +1,114 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
|
||||
local consume = test.EventConsumer({
|
||||
"shown from rendering",
|
||||
"event think",
|
||||
"event triggers hide",
|
||||
"hidden",
|
||||
"event triggers show",
|
||||
"shown from event",
|
||||
})
|
||||
|
||||
function test.Run(done)
|
||||
local stage = nil
|
||||
|
||||
do
|
||||
local BUILDER, PART = pac.PartTemplate("base_drawable")
|
||||
|
||||
PART.FriendlyName = "test"
|
||||
PART.ClassName = "test"
|
||||
PART.Icon = 'icon16/cut.png'
|
||||
|
||||
function PART:OnShow(from_rendering)
|
||||
if from_rendering then
|
||||
-- TODO: OnShow(true) triggers 2 times
|
||||
if stage == nil then
|
||||
-- 1
|
||||
|
||||
consume("shown from rendering")
|
||||
stage = "first event frame"
|
||||
end
|
||||
else
|
||||
if stage == "wait for trigger" then
|
||||
|
||||
-- 5
|
||||
|
||||
consume("shown from event")
|
||||
self:GetRootPart():Remove()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function PART:OnHide()
|
||||
if stage == "hide from event" then
|
||||
|
||||
-- 3
|
||||
|
||||
consume("hidden")
|
||||
stage = "show trigger"
|
||||
end
|
||||
end
|
||||
|
||||
function PART:OnRemove()
|
||||
done()
|
||||
end
|
||||
|
||||
pac.RegisterPart(PART)
|
||||
end
|
||||
|
||||
do
|
||||
local event = pac.CreateEvent("test")
|
||||
|
||||
function event:Think(event, ent, ...)
|
||||
|
||||
if stage == "first event frame" then
|
||||
|
||||
-- 2
|
||||
|
||||
consume("event think")
|
||||
stage = "hide trigger"
|
||||
|
||||
|
||||
elseif stage == "hide trigger" then
|
||||
|
||||
|
||||
-- 3
|
||||
|
||||
consume("event triggers hide")
|
||||
stage = "hide from event"
|
||||
|
||||
return true -- hide
|
||||
elseif stage == "show trigger" then
|
||||
|
||||
-- 4
|
||||
|
||||
consume("event triggers show")
|
||||
stage = "wait for trigger"
|
||||
|
||||
|
||||
return false -- show
|
||||
end
|
||||
end
|
||||
|
||||
pac.RegisterEvent(event)
|
||||
end
|
||||
|
||||
local root = pac.CreatePart("group")
|
||||
|
||||
do
|
||||
local event = root:CreatePart("event")
|
||||
event:SetEvent("test")
|
||||
event:SetAffectChildrenOnly(true)
|
||||
|
||||
local child = event:CreatePart("test")
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user