local PLUGIN = PLUGIN

AddCSLuaFile()

ENT.Type        = "anim"
ENT.RenderGroup = RENDERGROUP_BOTH

ENT.PrintName   = "Customization Bench"
ENT.Category    = "Tactical RP"

ENT.Spawnable   = true
ENT.Model       = "models/props_canal/winch02.mdl"

function ENT:Initialize()
  local model = self.Model

  self:SetModel(model)

  if SERVER then
    self:PhysicsInit(SOLID_VPHYSICS)
    self:SetMoveType(MOVETYPE_VPHYSICS)
    self:SetSolid(SOLID_VPHYSICS)
    self:SetCollisionGroup(COLLISION_GROUP_WEAPON)
    self:SetUseType(SIMPLE_USE)
    self:PhysWake()
  end

  -- removal is handled when checking position
  table.insert(PLUGIN.Benches, self)
end

local font = "TacRP_Myriad_Pro_24_Unscaled"

function ENT:DrawTranslucent()
  local distsqr = (EyePos() - self:WorldSpaceCenter()):LengthSqr()
  if distsqr <= 262144 then   -- 512^2
    local a = 1               --math.Clamp(1 - (distsqr - 196608) / 65536, 0, 1)
    local ang = self:GetAngles()

    ang:RotateAroundAxis(ang:Forward(), 180)
    ang:RotateAroundAxis(ang:Right(), 90)
    ang:RotateAroundAxis(ang:Up(), 90)

    local pos = self:GetPos()

    pos = pos + ang:Forward() * 2.75
    pos = pos + ang:Up() * 9
    pos = pos + ang:Right() * -33

    cam.Start3D2D(pos, ang, 0.075)
    surface.SetFont(font)
    local w = surface.GetTextSize(self.PrintName)
    surface.SetTextPos(-w / 2, 0)
    surface.SetTextColor(255, 255, 255)
    surface.DrawText(self.PrintName)
    if distsqr <= 16384 then
      local t2 = "READY"
      local w2 = surface.GetTextSize(t2)
      surface.SetTextPos(-w2 / 2, 30)
      surface.SetTextColor(100, 255, 100)
      surface.DrawText(t2)
    end
    cam.End3D2D()
  end
end

function ENT:Draw()
  self:DrawModel()
end
