Files
wnsrc/lua/weapons/gmod_tool/stools/test_tool_d2k.lua
lifestorm 94063e4369 Upload
2024-08-04 22:55:00 +03:00

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