mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 21:53:46 +03:00
Upload
This commit is contained in:
103
lua/includes/util/model_database.lua
Normal file
103
lua/includes/util/model_database.lua
Normal file
@@ -0,0 +1,103 @@
|
||||
--[[
|
||||
| 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/
|
||||
--]]
|
||||
|
||||
--=============================================================================--
|
||||
-- ___ ___ _ _ _ __ _ ___ ___ __ __
|
||||
-- |_ _|| __| / \ | \_/ | / _| / \ | o \ o \\ V /
|
||||
-- | | | _| | o || \_/ | ( |_n| o || / / \ /
|
||||
-- |_| |___||_n_||_| |_| \__/|_n_||_|\\_|\\ |_| 2007
|
||||
--
|
||||
--=============================================================================--
|
||||
|
||||
local DatabasedModels = {}
|
||||
|
||||
if ( !sql.TableExists( "modelinfo" ) ) then
|
||||
|
||||
sql.Query( [[CREATE TABLE IF NOT EXISTS modelinfo ( name TEXT NOT NULL PRIMARY KEY,
|
||||
poseparams INTEGER,
|
||||
numsequences INTEGER,
|
||||
numattachments INTEGER,
|
||||
numbonecontrollers INTEGER,
|
||||
numskins INTEGER,
|
||||
size INTEGER );]] )
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
Called from the engine on model load to enable Lua to cache
|
||||
the model stats in a database, so that rather than building
|
||||
all in one go, they'll get updated as the player plays.
|
||||
-----------------------------------------------------------]]
|
||||
function OnModelLoaded( ModelName, NumPoseParams, NumSeq, NumAttachments, NumBoneControllers, NumSkins, Size )
|
||||
|
||||
local ModelName = string.lower( string.gsub( ModelName, "\\", "/" ) )
|
||||
ModelName = "models/".. ModelName
|
||||
|
||||
-- No need to store a model more than once per session
|
||||
if ( DatabasedModels[ ModelName ] ) then return end
|
||||
DatabasedModels[ ModelName ] = true
|
||||
|
||||
-- Just in case. Don't want errors spewing all over
|
||||
-- the place every time a model loads.
|
||||
if ( !sql.TableExists( "modelinfo" ) ) then return end
|
||||
|
||||
local safeModelName = SQLStr( ModelName )
|
||||
|
||||
--
|
||||
-- We delete the old entry because this model may have been updated.
|
||||
-- The chances are very slim, but there's no real harm in it.
|
||||
--
|
||||
sql.Query( "DELETE FROM modelinfo WHERE model = "..safeModelName )
|
||||
sql.Query( Format( [[INSERT INTO modelinfo ( name,
|
||||
poseparams,
|
||||
numsequences,
|
||||
numattachments,
|
||||
numbonecontrollers,
|
||||
numskins,
|
||||
size )
|
||||
|
||||
VALUES
|
||||
|
||||
( %s, %i, %i, %i, %i, %i, %i ) ]],
|
||||
|
||||
safeModelName,
|
||||
NumPoseParams,
|
||||
NumSeq,
|
||||
NumAttachments,
|
||||
NumBoneControllers,
|
||||
NumSkins,
|
||||
Size
|
||||
) )
|
||||
--[[
|
||||
MsgN( ModelName,
|
||||
"\nNumPoseParams: ", NumPoseParams,
|
||||
"\nNumSeq: ", NumSeq,
|
||||
"\nNumAttachments: ", NumAttachments,
|
||||
"\nNumBoneControllers: ", NumBoneControllers,
|
||||
"\nNumSkins: ", NumSkins,
|
||||
"\nSize: ", Size )
|
||||
--]]
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
Returns the number of skins this model has. If we don't
|
||||
know, it will return 0
|
||||
-----------------------------------------------------------]]
|
||||
function NumModelSkins( ModelName )
|
||||
|
||||
local ModelName = string.lower( ModelName )
|
||||
local safeModelName = SQLStr( ModelName )
|
||||
local num = sql.QueryValue( "SELECT numskins FROM modelinfo WHERE name = " .. safeModelName )
|
||||
if ( num == nil ) then return 0 end
|
||||
|
||||
return tonumber( num ) or 0
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user