Ru/Authoring a Logical Entity/Code: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
m (obsolete language category) |
||
(6 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{DISPLAYTITLE:Создание | {{Underlinked|date=January 2024}} | ||
{{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 53: | ||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||
// Назначение: Обработка входящих значений (tick input) от других | // Назначение: Обработка входящих значений (tick input) от других сущностей | ||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||
void CMyLogicalEntity::InputTick( inputdata_t &inputData ) | void CMyLogicalEntity::InputTick( inputdata_t &inputData ) | ||
Line 73: | Line 74: | ||
== См. Также == | == См. Также == | ||
* | *{{L|Authoring a Logical Entity|Создание логической сущности}} | ||
{{ACategory|Programming}} | |||
Latest revision as of 03:41, 22 August 2024

This article needs more
links to other articles to help
integrate it into the encyclopedia. Please help improve this article by adding links
that are relevant to the context within the existing text.
January 2024



January 2024
//===== 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;
}
}