mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-16 13:23:46 +03:00
106 lines
3.1 KiB
Lua
106 lines
3.1 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/
|
||
--]]
|
||
|
||
--[[
|
||
© AsterionStaff 2022.
|
||
This script was created from the developers of the AsterionTeam.
|
||
You can get more information from one of the links below:
|
||
Site - https://asterion.games
|
||
Discord - https://discord.gg/CtfS8r5W3M
|
||
|
||
developer(s):
|
||
Selenter - https://steamcommunity.com/id/selenter
|
||
|
||
——— Chop your own wood and it will warm you twice.
|
||
]]--
|
||
|
||
-- Допустимые для загрузки расширения
|
||
ImageTool.ValidExtension = {
|
||
realm = {
|
||
["png"] = true,
|
||
["jpg"] = true,
|
||
["jfif"] = true
|
||
},
|
||
content = {
|
||
["image/png"] = true,
|
||
["image/jpeg"] = true
|
||
}
|
||
}
|
||
|
||
-- Использует ли пользователь Image Tool
|
||
function ImageTool:IsUsesTool(client)
|
||
if !IsValid(client) then return false end
|
||
|
||
local weapon = client:GetActiveWeapon()
|
||
if !IsValid(weapon) then return false end
|
||
|
||
local class = weapon:GetClass()
|
||
if class != "gmod_tool" then return false end
|
||
|
||
local tool = client:GetTool() and client:GetTool().Name or nil
|
||
if tool != "Image Tool" then return false end
|
||
|
||
return true
|
||
end
|
||
|
||
-- Получаем информацию о Image Tool
|
||
function ImageTool:GetToolData(client)
|
||
if !self:IsUsesTool(client) then return end
|
||
|
||
local trace = client:GetEyeTrace()
|
||
local position = trace.HitPos
|
||
local angles = trace.HitNormal:Angle()
|
||
angles:RotateAroundAxis(angles:Up(), 90)
|
||
angles:RotateAroundAxis(angles:Forward(), 90)
|
||
|
||
local tool = client:GetTool()
|
||
|
||
local imageURL = tool:GetClientInfo("url")
|
||
local imageWidth = tool:GetClientInfo("width")
|
||
local imageHeight = tool:GetClientInfo("height")
|
||
local imageScale = tool:GetClientInfo("scale")
|
||
local imageBrightness = tool:GetClientInfo("brightness")
|
||
local imageAlpha = tool:GetClientInfo("alpha")
|
||
|
||
imageURL = imageURL:gsub("cdn.discordapp.com", "media.discordapp.net") -- Fix Discord Cloudfire
|
||
|
||
local data = {
|
||
url = imageURL,
|
||
width = imageWidth,
|
||
height = imageHeight,
|
||
scale = imageScale,
|
||
brightness = imageBrightness,
|
||
position = position + angles:Up() * 0.5,
|
||
angles = angles,
|
||
alpha = imageAlpha
|
||
}
|
||
|
||
return data
|
||
end
|
||
|
||
-- Проверка на валидность на сайте картинки
|
||
function ImageTool:CheckExtensionImage(body, header)
|
||
local content = header["Content-Type"]
|
||
local extension = self.ValidExtension
|
||
|
||
local urlLowerPNG = string.lower(string.sub(body, 2, 4))
|
||
local urlLowerJPEG = string.lower(string.sub(body, 7, 10))
|
||
|
||
if extension.realm[urlLowerPNG] or extension.realm[urlLowerJPEG] or extension.content[content] then
|
||
return true
|
||
end
|
||
|
||
return false
|
||
end
|
||
|
||
-- Получаем все картинки на карте
|
||
function ImageTool:GetImages()
|
||
return ImageTool.imageList or {}
|
||
end |