local catjpeg = Material("catjpeg.jpg", "noclamp")
catjpeg = catjpeg:GetTexture("$basetexture")
local function GetStaticProps()
local static_props = {}
local map = string.format("maps/%s.bsp", game.GetMap())
local fl = file.Open(map, "rb", "GAME")
fl:Seek(568)
local lump_data = {
data = {},
fileofs = fl:ReadLong(),
filelen = fl:ReadLong(),
version = fl:ReadLong(),
fourCC = fl:Read(4),
}
fl:Seek(lump_data.fileofs)
for i = 1, fl:ReadLong() do
lump_data.data[i] = {
id = fl:Read(4),
flags = fl:ReadShort(),
version = fl:ReadShort(),
fileofs = fl:ReadLong(),
filelen = fl:ReadLong(),
}
end
for _, lump in ipairs(lump_data.data) do
fl:Seek(lump.fileofs)
for i = 1, fl:ReadLong() do
local mdl = fl:Read(128)
mdl = string.match(mdl, "^[%Z]+")
if (mdl) then
table.insert(static_props, mdl)
end
end
end
fl:Close()
return static_props
end
do
local brushes = Entity(0):GetBrushSurfaces()
for i, surfaceinfo in ipairs(brushes) do
if (surfaceinfo:IsWater() or surfaceinfo:IsSky()) then continue end
local mat = surfaceinfo:GetMaterial()
mat:SetTexture("$basetexture", catjpeg)
mat:SetTexture("$basetexture2", catjpeg)
end
end
do
local props = GetStaticProps()
local ent = ClientsideModel("error")
for i, mdl in ipairs(props) do
ent:SetModel(mdl)
for _, mat in ipairs(ent:GetMaterials()) do
mat = Material(mat)
mat:SetTexture("$basetexture", catjpeg)
mat:SetTexture("$basetexture2", catjpeg)
end
end
ent:Remove()
end
Comments