mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-16 21:33:46 +03:00
87 lines
2.7 KiB
Lua
87 lines
2.7 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/
|
|
--]]
|
|
|
|
if game.SinglePlayer || !game.SinglePlayer() then TOOL.AddToMenu = false return end //Example file, don't run it
|
|
|
|
//Generic entity spawning script used for testing whether they work or not
|
|
|
|
TOOL.AddToMenu = false //We're not testing anything right now
|
|
|
|
TOOL.Category = "Effects"
|
|
TOOL.Name = "TESTING"
|
|
TOOL.Command = nil
|
|
TOOL.ConfigName = ""
|
|
|
|
//Add language descriptions
|
|
if (CLIENT) then
|
|
language.Add("Tool.test.name", "Testing Tool")
|
|
language.Add("Tool.test.desc", "Creates random stuff")
|
|
language.Add("Tool.test.0", "Left-Click: Make something")
|
|
language.Add("Cleanup_test", "Test Entities")
|
|
language.Add("Cleaned_test", "Cleaned up all Test Entities")
|
|
language.Add("Undone_test", "Test Entity undone")
|
|
end
|
|
|
|
//Sandbox-related stuff
|
|
cleanup.Register("test")
|
|
|
|
|
|
//Make a test entity
|
|
function TOOL:LeftClick(trace)
|
|
|
|
//Clients don't need to know about any of this
|
|
if (CLIENT) then return true end
|
|
|
|
//Create entity and assign settings
|
|
local entity = ents.Create("env_smoketrail")
|
|
if !entity || !entity:IsValid() then return false end
|
|
entity:SetPos(trace.HitPos)
|
|
entity:SetKeyValue("angles", tostring(trace.HitNormal:Angle()))
|
|
entity:SetKeyValue("opacity", "0.52") //Float
|
|
entity:SetKeyValue("spawnrate", "16") //Float
|
|
entity:SetKeyValue("lifetime", "2") //Float
|
|
entity:SetKeyValue("startcolor", "255 255 255")
|
|
entity:SetKeyValue("endcolor", "255 255 255")
|
|
entity:SetKeyValue("emittime", "16384") //Float
|
|
entity:SetKeyValue("minspeed", "4") //Float
|
|
entity:SetKeyValue("maxspeed", "16") //Float
|
|
entity:SetKeyValue("mindirectedspeed", "16") //Float
|
|
entity:SetKeyValue("maxdirectedspeed", "64") //Float
|
|
entity:SetKeyValue("startsize", "32") //Float
|
|
entity:SetKeyValue("endsize", "100") //Float
|
|
entity:SetKeyValue("spawnradius", "16") //Float
|
|
entity:SetKeyValue("firesprite", "effects/muzzleflash2")
|
|
entity:SetKeyValue("smokesprite", "particle/smokesprites_0001.vmt")
|
|
|
|
//Spawn it
|
|
entity:Spawn()
|
|
entity:Activate()
|
|
//entity:Fire("Start","",0)
|
|
//entity:Fire("TurnOn","",0)
|
|
|
|
//Parent if needed
|
|
if trace && trace.Entity && trace.Entity:IsValid() && trace.Entity:GetPhysicsObject():IsValid() && !trace.Entity:IsPlayer() && !trace.Entity:IsWorld() then entity:SetParent(trace.Entity) end
|
|
|
|
//Make sure we can undo
|
|
undo.Create("Test")
|
|
undo.AddEntity(entity)
|
|
undo.SetPlayer(self:GetOwner())
|
|
undo.Finish()
|
|
cleanup.Add(self:GetOwner(), "Test", entity)
|
|
|
|
return true
|
|
|
|
end
|
|
|
|
|
|
//Build Tool Menu
|
|
function TOOL.BuildCPanel(panel)
|
|
panel:AddControl( "Header", { Text = "#Tool.test.name", Description = "#Tool.test.desc" } )
|
|
end |