From daa9009fb4ee095963a01bc3b411047f614e5d89 Mon Sep 17 00:00:00 2001 From: Strand8319 Date: Tue, 24 Feb 2026 15:14:02 +0500 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A8=20fix:=20use=20cosine=20value=20fo?= =?UTF-8?q?r=20FindInCone=20angle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/entities/base_wdr_entity/init.lua | 10 +++++----- lua/entities/ra_domestic_dish/init.lua | 3 ++- lua/entities/ra_large_drum/init.lua | 3 ++- lua/entities/ra_large_omni/init.lua | 3 ++- lua/entities/ra_log/init.lua | 3 ++- lua/entities/ra_orbital_dish/init.lua | 3 ++- lua/entities/ra_panel/init.lua | 3 ++- lua/entities/ra_sector/init.lua | 3 ++- lua/entities/ra_small_drum/init.lua | 3 ++- lua/entities/ra_small_omni/init.lua | 3 ++- lua/entities/ra_uplink_dish/init.lua | 3 ++- 11 files changed, 25 insertions(+), 15 deletions(-) diff --git a/lua/entities/base_wdr_entity/init.lua b/lua/entities/base_wdr_entity/init.lua index 2cea421f..9024cba2 100644 --- a/lua/entities/base_wdr_entity/init.lua +++ b/lua/entities/base_wdr_entity/init.lua @@ -111,7 +111,7 @@ function ENT:Think() if self:CanTX() then if RES_DISTRIB then local amt = RD.GetResourceAmount(self, "energy") - + if amt < (self.txwatts * 4 * ThinkInterval) then RD.ConsumeResource(self, "energy", amt) else @@ -120,8 +120,8 @@ function ENT:Think() end if self.txwatts >= 200 then - local e = ents.FindInCone(self:GetPos(), self:GetForward(), self.txwatts/5, self.beamWidth) - + local e = ents.FindInCone(self:GetPos(), self:GetForward(), self.txwatts/5, self.beamWidthCos) + for k, v in pairs(e) do if v:IsPlayer() then v:TakeDamage(self.txwatts / 500 + (100/self:GetPos():Distance(v:GetPos())), self) end end @@ -163,7 +163,7 @@ function ENT:Think() local skew = 0 -- One vertical, one horizontal if self.pol ~= v.pol then skew = 1.5707963267949 end - + skewloss = math.abs(math.sin(math.rad(v:GetAngles().r) - math.rad(self:GetAngles().r) + skew) * 20) end @@ -174,7 +174,7 @@ function ENT:Think() -- Calculate the received signal strength (strength + self.gain) -- If this transmitter is operational, within our field of vision, and we are within its beam - if v:CanTX() and math.deg(onedir) <= (self.beamWidth/2.0) and math.deg(otherdir) <= (v.beamWidth/2.0) then + if v:CanTX() and math.deg(onedir) <= (self.beamWidth) and math.deg(otherdir) <= (v.beamWidth) then table.insert(txs, v) end end diff --git a/lua/entities/ra_domestic_dish/init.lua b/lua/entities/ra_domestic_dish/init.lua index 48fe4661..9219608d 100644 --- a/lua/entities/ra_domestic_dish/init.lua +++ b/lua/entities/ra_domestic_dish/init.lua @@ -6,7 +6,8 @@ include("shared.lua") function ENT:Initialize() self.gain = 25.0 -- dB self.pol = 2 -- Horizontal Polarization - self.beamWidth = 5.0 -- Degrees + self.beamWidth = 5 -- Degrees + self.beamWidthCos = math.cos(math.rad(self.beamWidth/2)) self.active = false -- TX enabled (if TX) self.txchannels = {} -- tx data self.txwatts = 0 -- tx power diff --git a/lua/entities/ra_large_drum/init.lua b/lua/entities/ra_large_drum/init.lua index d1be0adc..746f1edf 100644 --- a/lua/entities/ra_large_drum/init.lua +++ b/lua/entities/ra_large_drum/init.lua @@ -6,7 +6,8 @@ include("shared.lua") function ENT:Initialize() self.gain = 22.0 -- dB self.pol = 0 -- Cross Polarization - self.beamWidth = 5.0 -- Degrees + self.beamWidth = 5 -- Degrees + self.beamWidthCos = math.cos(math.rad(self.beamWidth/2)) self.active = false -- TX enabled (if TX) self.txchannels = {} -- tx data self.txwatts = 0 -- tx power diff --git a/lua/entities/ra_large_omni/init.lua b/lua/entities/ra_large_omni/init.lua index d54d7a58..515137db 100644 --- a/lua/entities/ra_large_omni/init.lua +++ b/lua/entities/ra_large_omni/init.lua @@ -6,7 +6,8 @@ include("shared.lua") function ENT:Initialize() self.gain = 2.2 -- dB self.pol = 1 -- Vertical Polarization - self.beamWidth = 360.0 -- Degrees + self.beamWidth = 360 -- Degrees + self.beamWidthCos = math.cos(math.rad(self.beamWidth/2)) self.active = false -- TX enabled (if TX) self.txchannels = {} -- tx data self.txwatts = 0 -- tx power diff --git a/lua/entities/ra_log/init.lua b/lua/entities/ra_log/init.lua index 3d647ca2..02437c34 100644 --- a/lua/entities/ra_log/init.lua +++ b/lua/entities/ra_log/init.lua @@ -6,7 +6,8 @@ include("shared.lua") function ENT:Initialize() self.gain = 9.6 -- dB self.pol = 2 -- Horizontal Polarization - self.beamWidth = 20.0 -- Degrees + self.beamWidth = 20 -- Degrees + self.beamWidthCos = math.cos(math.rad(self.beamWidth/2)) self.active = false -- TX enabled (if TX) self.txchannels = {} -- tx data self.txwatts = 0 -- tx power diff --git a/lua/entities/ra_orbital_dish/init.lua b/lua/entities/ra_orbital_dish/init.lua index 0883e343..cc575774 100644 --- a/lua/entities/ra_orbital_dish/init.lua +++ b/lua/entities/ra_orbital_dish/init.lua @@ -6,7 +6,8 @@ include("shared.lua") function ENT:Initialize() self.gain = 20.0 -- dB self.pol = 1 -- Vertical Polarization - self.beamWidth = 15.0 -- Degrees + self.beamWidth = 15 -- Degrees + self.beamWidthCos = math.cos(math.rad(self.beamWidth/2)) self.active = false -- TX enabled (if TX) self.txchannels = {} -- tx data self.txwatts = 0 -- tx power diff --git a/lua/entities/ra_panel/init.lua b/lua/entities/ra_panel/init.lua index 2d1f2fe3..33b8e7ef 100644 --- a/lua/entities/ra_panel/init.lua +++ b/lua/entities/ra_panel/init.lua @@ -6,7 +6,8 @@ include("shared.lua") function ENT:Initialize() self.gain = 19.5 -- dB self.pol = 1 -- Vertical Polarization - self.beamWidth = 8.0 -- Degrees + self.beamWidth = 8 -- Degrees + self.beamWidthCos = math.cos(math.rad(self.beamWidth/2)) self.active = false -- TX enabled (if TX) self.txchannels = {} -- tx data self.txwatts = 0 -- tx power diff --git a/lua/entities/ra_sector/init.lua b/lua/entities/ra_sector/init.lua index e4ace939..034463f0 100644 --- a/lua/entities/ra_sector/init.lua +++ b/lua/entities/ra_sector/init.lua @@ -6,7 +6,8 @@ include("shared.lua") function ENT:Initialize() self.gain = 16.0 -- dB self.pol = 0 -- Cross Polarization - self.beamWidth = 120.0 -- Degrees + self.beamWidth = 120 -- Degrees + self.beamWidthCos = math.cos(math.rad(self.beamWidth/2)) self.active = false -- TX enabled (if TX) self.txchannels = {} -- tx data self.txwatts = 0 -- tx power diff --git a/lua/entities/ra_small_drum/init.lua b/lua/entities/ra_small_drum/init.lua index b32264ea..c1c744eb 100644 --- a/lua/entities/ra_small_drum/init.lua +++ b/lua/entities/ra_small_drum/init.lua @@ -6,7 +6,8 @@ include("shared.lua") function ENT:Initialize() self.gain = 17.5 -- dB self.pol = 0 -- Cross Polarization - self.beamWidth = 5.0 -- Degrees + self.beamWidth = 5 -- Degrees + self.beamWidthCos = math.cos(math.rad(self.beamWidth/2)) self.active = false -- TX enabled (if TX) self.txchannels = {} -- tx data self.txwatts = 0 -- tx power diff --git a/lua/entities/ra_small_omni/init.lua b/lua/entities/ra_small_omni/init.lua index 359f3895..12eb3e75 100644 --- a/lua/entities/ra_small_omni/init.lua +++ b/lua/entities/ra_small_omni/init.lua @@ -6,7 +6,8 @@ include("shared.lua") function ENT:Initialize() self.gain = 2.1 -- dB self.pol = 1 -- Vertical Polarization - self.beamWidth = 360.0 -- Degrees + self.beamWidth = 360 -- Degrees + self.beamWidthCos = math.cos(math.rad(self.beamWidth/2)) self.active = false -- TX enabled (if TX) self.txchannels = {} -- tx data self.txwatts = 0 -- tx power diff --git a/lua/entities/ra_uplink_dish/init.lua b/lua/entities/ra_uplink_dish/init.lua index 56f95a09..b582ee24 100644 --- a/lua/entities/ra_uplink_dish/init.lua +++ b/lua/entities/ra_uplink_dish/init.lua @@ -6,7 +6,8 @@ include("shared.lua") function ENT:Initialize() self.gain = 32.0 -- dB self.pol = 2 -- Horizontal Polarization - self.beamWidth = 5.0 -- Degrees + self.beamWidth = 5 -- Degrees + self.beamWidthCos = math.cos(math.rad(self.beamWidth/2)) self.active = false -- TX enabled (if TX) self.txchannels = {} -- tx data self.txwatts = 0 -- tx power