mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 05:43:46 +03:00
Upload
This commit is contained in:
188
gamemodes/sandbox/gamemode/cl_init.lua
Normal file
188
gamemodes/sandbox/gamemode/cl_init.lua
Normal file
@@ -0,0 +1,188 @@
|
||||
--[[
|
||||
| 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/
|
||||
--]]
|
||||
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
|
||||
Sandbox Gamemode
|
||||
|
||||
This is GMod's default gamemode
|
||||
|
||||
-----------------------------------------------------------]]
|
||||
|
||||
include( "shared.lua" )
|
||||
include( "cl_spawnmenu.lua" )
|
||||
include( "cl_notice.lua" )
|
||||
include( "cl_hints.lua" )
|
||||
include( "cl_worldtips.lua" )
|
||||
include( "cl_search_models.lua" )
|
||||
include( "gui/IconEditor.lua" )
|
||||
|
||||
--
|
||||
-- Make BaseClass available
|
||||
--
|
||||
DEFINE_BASECLASS( "gamemode_base" )
|
||||
|
||||
|
||||
local physgun_halo = CreateConVar( "physgun_halo", "1", { FCVAR_ARCHIVE }, "Draw the Physics Gun grab effect?" )
|
||||
|
||||
function GM:Initialize()
|
||||
|
||||
BaseClass.Initialize( self )
|
||||
|
||||
end
|
||||
|
||||
function GM:LimitHit( name )
|
||||
|
||||
local str = "#SBoxLimit_" .. name
|
||||
local translated = language.GetPhrase( str )
|
||||
if ( str == translated ) then
|
||||
-- No translation available, apply our own
|
||||
translated = string.format( language.GetPhrase( "hint.hitXlimit" ), language.GetPhrase( name ) )
|
||||
end
|
||||
|
||||
self:AddNotify( translated, NOTIFY_ERROR, 6 )
|
||||
surface.PlaySound( "buttons/button10.wav" )
|
||||
|
||||
end
|
||||
|
||||
function GM:OnUndo( name, strCustomString )
|
||||
|
||||
local text = strCustomString
|
||||
|
||||
if ( !text ) then
|
||||
local strId = "#Undone_" .. name
|
||||
text = language.GetPhrase( strId )
|
||||
if ( strId == text ) then
|
||||
-- No translation available, generate our own
|
||||
text = string.format( language.GetPhrase( "hint.undoneX" ), language.GetPhrase( name ) )
|
||||
end
|
||||
end
|
||||
|
||||
-- This is a hack for SWEPs, Tools, etc, that already have hardcoded English only translations
|
||||
-- TODO: Do this for non English languages only
|
||||
local strMatch = string.match( text, "^Undone (.*)$" )
|
||||
if ( strMatch ) then
|
||||
text = string.format( language.GetPhrase( "hint.undoneX" ), language.GetPhrase( strMatch ) )
|
||||
end
|
||||
|
||||
self:AddNotify( text, NOTIFY_UNDO, 2 )
|
||||
|
||||
-- Find a better sound :X
|
||||
surface.PlaySound( "buttons/button15.wav" )
|
||||
|
||||
end
|
||||
|
||||
function GM:OnCleanup( name )
|
||||
|
||||
local str = "#Cleaned_" .. name
|
||||
local translated = language.GetPhrase( str )
|
||||
if ( str == translated ) then
|
||||
-- No translation available, apply our own
|
||||
translated = string.format( language.GetPhrase( "hint.cleanedX" ), language.GetPhrase( name ) )
|
||||
end
|
||||
|
||||
self:AddNotify( translated, NOTIFY_CLEANUP, 5 )
|
||||
|
||||
-- Find a better sound :X
|
||||
surface.PlaySound( "buttons/button15.wav" )
|
||||
|
||||
end
|
||||
|
||||
function GM:UnfrozeObjects( num )
|
||||
|
||||
self:AddNotify( string.format( language.GetPhrase( "hint.unfrozeX" ), num ), NOTIFY_GENERIC, 3 )
|
||||
|
||||
-- Find a better sound :X
|
||||
surface.PlaySound( "npc/roller/mine/rmine_chirp_answer1.wav" )
|
||||
|
||||
end
|
||||
|
||||
function GM:HUDPaint()
|
||||
|
||||
self:PaintWorldTips()
|
||||
|
||||
-- Draw all of the default stuff
|
||||
BaseClass.HUDPaint( self )
|
||||
|
||||
self:PaintNotes()
|
||||
|
||||
end
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
Draws on top of VGUI..
|
||||
-----------------------------------------------------------]]
|
||||
function GM:PostRenderVGUI()
|
||||
|
||||
BaseClass.PostRenderVGUI( self )
|
||||
|
||||
end
|
||||
|
||||
local PhysgunHalos = {}
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
Name: gamemode:DrawPhysgunBeam()
|
||||
Desc: Return false to override completely
|
||||
-----------------------------------------------------------]]
|
||||
function GM:DrawPhysgunBeam( ply, weapon, bOn, target, boneid, pos )
|
||||
|
||||
if ( physgun_halo:GetInt() == 0 ) then return true end
|
||||
|
||||
if ( IsValid( target ) ) then
|
||||
PhysgunHalos[ ply ] = target
|
||||
end
|
||||
|
||||
return true
|
||||
|
||||
end
|
||||
|
||||
hook.Add( "PreDrawHalos", "AddPhysgunHalos", function()
|
||||
|
||||
if ( !PhysgunHalos || table.IsEmpty( PhysgunHalos ) ) then return end
|
||||
|
||||
for k, v in pairs( PhysgunHalos ) do
|
||||
|
||||
if ( !IsValid( k ) ) then continue end
|
||||
|
||||
local size = math.random( 1, 2 )
|
||||
local colr = k:GetWeaponColor() + VectorRand() * 0.3
|
||||
|
||||
halo.Add( PhysgunHalos, Color( colr.x * 255, colr.y * 255, colr.z * 255 ), size, size, 1, true, false )
|
||||
|
||||
end
|
||||
|
||||
PhysgunHalos = {}
|
||||
|
||||
end )
|
||||
|
||||
|
||||
--[[---------------------------------------------------------
|
||||
Name: gamemode:NetworkEntityCreated()
|
||||
Desc: Entity is created over the network
|
||||
-----------------------------------------------------------]]
|
||||
function GM:NetworkEntityCreated( ent )
|
||||
|
||||
--
|
||||
-- If the entity wants to use a spawn effect
|
||||
-- then create a propspawn effect if the entity was
|
||||
-- created within the last second (this function gets called
|
||||
-- on every entity when joining a server)
|
||||
--
|
||||
|
||||
if ( ent:GetSpawnEffect() && ent:GetCreationTime() > ( CurTime() - 1.0 ) ) then
|
||||
|
||||
local ed = EffectData()
|
||||
ed:SetOrigin( ent:GetPos() )
|
||||
ed:SetEntity( ent )
|
||||
util.Effect( "propspawn", ed, true, true )
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user