mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-18 06:03:47 +03:00
86 lines
2.0 KiB
Lua
86 lines
2.0 KiB
Lua
--[[
|
|
| 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/
|
|
--]]
|
|
|
|
ENT.Type = "anim"
|
|
ENT.PrintName = "Loot spawner"
|
|
ENT.Category = "WN7"
|
|
ENT.Spawnable = false
|
|
ENT.bNoPersist = true
|
|
ENT.PhysgunDisable = true
|
|
|
|
|
|
if (SERVER) then
|
|
function ENT:Initialize()
|
|
self:PhysicsInit(SOLID_NONE)
|
|
self:SetSolid(SOLID_NONE)
|
|
self:SetUseType(SIMPLE_USE)
|
|
self:SetModel("models/props_junk/sawblade001a.mdl")
|
|
self:DrawShadow( false )
|
|
self:SetCollisionGroup(COLLISION_GROUP_WORLD)
|
|
self:SetMoveType(MOVETYPE_NONE)
|
|
self:SetNoDraw( true )
|
|
self.nextSpawn = CurTime()
|
|
local phy = self:GetPhysicsObject()
|
|
if IsValid(phy) then
|
|
phy:Sleep()
|
|
end
|
|
local id = self:EntIndex()
|
|
timer.Create("lootySpawner" .. id, 1, 0, function()
|
|
if not IsValid(self) then
|
|
timer.Remove("lootySpawner" .. id)
|
|
return
|
|
end
|
|
self:SpawnLoot()
|
|
end)
|
|
end
|
|
function ENT:GetLootEnt()
|
|
for k, v in pairs(ix.loot.entities) do
|
|
if k == self:GetLootType() then
|
|
return v
|
|
end
|
|
end
|
|
end
|
|
function ENT:SpawnLoot()
|
|
if CurTime() < self.nextSpawn then
|
|
return
|
|
end
|
|
if IsValid(self.loot) then
|
|
self.loot:Remove()
|
|
end
|
|
self:UpdateTimer()
|
|
self.loot = ents.Create(self:GetLootEnt())
|
|
self.loot:SetPos(self:GetPos() + self:GetUp()*20)
|
|
self.loot:SetAngles(self:GetAngles())
|
|
self.loot:Spawn()
|
|
end
|
|
function ENT:UpdateTimer()
|
|
self.nextSpawn = CurTime() + (ix.config.Get("lootTimer", 1) * 60)
|
|
end
|
|
function ENT:Think()
|
|
self:NextThink( CurTime() + 2 )
|
|
self:SetNetVar("lootSpawn", ix.config.Get("lootTimer", 1))
|
|
return true
|
|
end
|
|
function ENT:OnRemove()
|
|
if IsValid(self.loot) then
|
|
self.loot:Remove()
|
|
end
|
|
end
|
|
function ENT:SetLootType(type)
|
|
self:SetNetVar("lootType", type)
|
|
end
|
|
function ENT:GetLootType()
|
|
return self:GetNetVar("lootType", "Basic")
|
|
end
|
|
else
|
|
|
|
end
|
|
|