Ru/Authoring a Logical Entity/Code: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
mNo edit summary |
||
Line 1: | Line 1: | ||
{{DISPLAYTITLE:Создание | {{DISPLAYTITLE:Создание логической сущности/Код}}<source lang="cpp"> | ||
//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======== | //===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======== | ||
// | // | ||
// Назначение: Простая логическая | // Назначение: Простая логическая сущность со счетчиком | ||
// посылающая команды на output при достижении порога. | // посылающая команды на output при достижении порога. | ||
// | // | ||
Line 52: | Line 52: | ||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||
// Назначение: Обработка входящих значений (tick input) от других | // Назначение: Обработка входящих значений (tick input) от других сущностей | ||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||
void CMyLogicalEntity::InputTick( inputdata_t &inputData ) | void CMyLogicalEntity::InputTick( inputdata_t &inputData ) | ||
Line 73: | Line 73: | ||
== См. Также == | == См. Также == | ||
*[[Authoring a Logical Entity:ru|Создание | *[[Authoring a Logical Entity:ru|Создание логической сущности]] | ||
[[Category:Programming:ru]] | [[Category:Programming:ru]] | ||
[[Category:Russian]] | [[Category:Russian]] |
Revision as of 11:23, 22 August 2011
//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ========
//
// Назначение: Простая логическая сущность со счетчиком
// посылающая команды на output при достижении порога.
//
//=============================================================================
#include "cbase.h"
class CMyLogicalEntity : public CLogicalEntity
{
public:
DECLARE_CLASS( CMyLogicalEntity, CLogicalEntity );
DECLARE_DATADESC();
// Конструктор
CMyLogicalEntity ()
{
m_nCounter = 0;
}
// Input функция
void InputTick( inputdata_t &inputData );
private:
int m_nThreshold; // Пороговое значение, по достижению которого активируется output
int m_nCounter; // Внутренний счётчик
COutputEvent m_OnThreshold; // Output событие, когда счётчик достигает порогового значения
};
LINK_ENTITY_TO_CLASS( my_logical_entity, CMyLogicalEntity );
// Начало описания наших данных для класса
BEGIN_DATADESC( CMyLogicalEntity )
// Для сохранения/загрузки
DEFINE_FIELD( m_nCounter, FIELD_INTEGER ),
// Связывает наши переменные с ключевыми значениями из Hammer
DEFINE_KEYFIELD( m_nThreshold, FIELD_INTEGER, "threshold" ),
// Связывает наше input название из Hammer с нашей input функцией
DEFINE_INPUTFUNC( FIELD_VOID, "Tick", InputTick ),
// Связывает наш ouput с output названием, используемым Hammer
DEFINE_OUTPUT( m_OnThreshold, "OnThreshold" ),
END_DATADESC()
//-----------------------------------------------------------------------------
// Назначение: Обработка входящих значений (tick input) от других сущностей
//-----------------------------------------------------------------------------
void CMyLogicalEntity::InputTick( inputdata_t &inputData )
{
// Увеличение нашего счетчика
m_nCounter++;
// Проверяем достиг ли счетчик порогового значения
if ( m_nCounter >= m_nThreshold )
{
// Запуск output события
m_OnThreshold.FireOutput( inputData.pActivator, this );
// Сбрасывание нашего счетчика
m_nCounter = 0;
}
}