mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-15 13:16:58 +00:00
1
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
#ifndef IHASATTRIBUTES_H
|
||||
#define IHASATTRIBUTES_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
//#include "attribute_manager.h"
|
||||
|
||||
class CAttributeManager;
|
||||
class CAttributeContainer;
|
||||
class CBaseEntity;
|
||||
class CAttributeList;
|
||||
|
||||
// To allow an entity to have attributes, derive it from IHasAttributes and
|
||||
// contain an CAttributeManager in it. Then:
|
||||
// - Call InitializeAttributes() before your entity's Spawn()
|
||||
// - Call AddAttribute() to add attributes to the entity
|
||||
// - Call all the CAttributeManager hooks at the appropriate times in your entity.
|
||||
// To get networking of the attributes to work on your entity:
|
||||
// - Add this to your entity's send table:
|
||||
// SendPropDataTable( SENDINFO_DT( m_AttributeManager ), &REFERENCE_SEND_TABLE(DT_AttributeManager) ),
|
||||
// - Call this inside your entity's OnDataChanged():
|
||||
// GetAttributeManager()->OnDataChanged( updateType );
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Derive from this if your entity wants to contain attributes.
|
||||
//-----------------------------------------------------------------------------
|
||||
class IHasAttributes
|
||||
{
|
||||
public:
|
||||
virtual CAttributeManager *GetAttributeManager( void ) = 0;
|
||||
virtual CAttributeContainer *GetAttributeContainer( void ) = 0;
|
||||
virtual CBaseEntity *GetAttributeOwner( void ) = 0;
|
||||
virtual CAttributeList *GetAttributeList( void ) = 0;
|
||||
|
||||
// Reapply yourself to whoever you should be providing attributes to.
|
||||
virtual void ReapplyProvision( void ) = 0;
|
||||
};
|
||||
|
||||
#endif // IHASATTRIBUTES_H
|
||||
Reference in New Issue
Block a user