wire/lua/entities/gmod_wire_trigger.lua
AbigailBuccaneer 9ae1f5504f Fix all whitespace errors
Now nobody's commit should be flagged by Travis unless it actually
introduces whitespace errors (which we do want to check for).

This doesn't fully sort out indentation everywhere, but does fix all
whitespace that Git doesn't like. You can check the whitespace across
the entire codebase with:

    git diff-tree --check "$(git hash-object -t tree /dev/null)" HEAD
2018-02-02 00:02:28 +00:00

100 lines
3.1 KiB
Lua

-- Wire Trigger created by mitterdoo
AddCSLuaFile()
DEFINE_BASECLASS( "base_wire_entity" )
ENT.PrintName = "Wire Trigger"
ENT.RenderGroup = RENDERGROUP_BOTH
ENT.WireDebugName = "Trigger"
function ENT:SetupDataTables()
self:NetworkVar( "Vector", 0, "TriggerSize" )
self:NetworkVar( "Vector", 1, "TriggerOffset" )
self:NetworkVar( "Entity", 0, "TriggerEntity" )
self:NetworkVar( "Int", 0, "Filter" )
self:NetworkVar( "Bool", 0, "OwnerOnly" )
end
if CLIENT then
function ENT:GetOverlayData()
local size = self:GetTriggerSize()
local offset = self:GetTriggerOffset()
local txt = "Size: " .. string.format( "(%.2f,%.2f,%.2f)", size.x, size.y, size.z ) .. "\n"
txt = txt .. "Offset: " .. string.format( "(%.2f,%.2f,%.2f)", offset.x, offset.y, offset.z ) .. "\n"
txt = txt .. "Triggered by: " .. (
self:GetFilter() == 0 and "All Entities" or
self:GetFilter() == 1 and "Only Players" or
self:GetFilter() == 2 and "Only Props"
)
return {txt=txt}
end
return -- No more client
end
function ENT:Initialize()
self:PhysicsInit( SOLID_VPHYSICS )
self:SetMoveType( MOVETYPE_VPHYSICS )
self:SetSolid( SOLID_VPHYSICS )
local phys = self:GetPhysicsObject() if (phys:IsValid()) then phys:Wake() end
self.Outputs = WireLib.CreateOutputs(self, { "EntCount", "Entities [ARRAY]" })
end
function ENT:Setup( model, filter, owneronly, sizex, sizey, sizez, offsetx, offsety, offsetz )
filter = math.Clamp( filter, 0, 2 )
sizex = math.Clamp( sizex, -1000, 1000 )
sizey = math.Clamp( sizey, -1000, 1000 )
sizez = math.Clamp( sizez, -1000, 1000 )
offsetx = math.Clamp( offsetx, -1000, 1000 )
offsety = math.Clamp( offsety, -1000, 1000 )
offsetz = math.Clamp( offsetz, -1000, 1000 )
self.model = model
self.filter = filter
self.owneronly = owneronly
self.sizex = sizex
self.sizey = sizey
self.sizez = sizez
self.offsetx = offsetx
self.offsety = offsety
self.offsetz = offsetz
self:SetOwnerOnly( tobool( owneronly ) )
self:SetModel( model )
self:SetFilter( filter )
self:SetTriggerSize( Vector( sizex, sizey, sizez ) )
self:SetTriggerOffset( Vector( offsetx, offsety, offsetz ) )
local mins = self:GetTriggerSize() / -2
local maxs = self:GetTriggerSize() / 2
local oldtrig = self:GetTriggerEntity()
if IsValid( oldtrig ) then
oldtrig:SetCollisionBounds( mins, maxs )
oldtrig:SetPos( self:LocalToWorld( self:GetTriggerOffset() ) )
oldtrig:Reset()
else
local trig = ents.Create( "gmod_wire_trigger_entity" )
trig:SetPos( self:LocalToWorld( self:GetTriggerOffset() ) )
trig:SetAngles( self:GetAngles() )
trig:PhysicsInit( SOLID_BBOX )
trig:SetMoveType( MOVETYPE_VPHYSICS )
trig:SetSolid( SOLID_BBOX )
trig:SetModel( "models/hunter/blocks/cube025x025x025.mdl" )
trig:SetParent( self )
trig:Spawn()
trig:SetCollisionBounds( mins, maxs )
trig:SetCollisionGroup( COLLISION_GROUP_IN_VEHICLE )
trig:SetNoDraw( true )
trig:SetTrigger( true )
self:SetTriggerEntity( trig )
trig:SetTriggerEntity( self )
self:DeleteOnRemove( trig )
end
end
duplicator.RegisterEntityClass("gmod_wire_trigger", WireLib.MakeWireEnt, "Data", "model", "filter", "owneronly", "sizex", "sizey", "sizez", "offsetx", "offsety", "offsetz" )