Dayz 1.25
Dayz Code Explorer by KGB
Загрузка...
Поиск...
Не найдено
Класс CAContinuousQuantityLiquidTransfer
+ Граф наследования:CAContinuousQuantityLiquidTransfer:

Защищенные члены

void CAContinuousQuantityLiquidTransfer (float quantity_used_per_second, float time_to_progress, int drain=-1)
 
override void Setup (ActionData action_data)
 
override int Execute (ActionData action_data)
 
override int Cancel (ActionData action_data)
 
override float GetProgress ()
 
void CalcAndSetQuantity (ActionData action_data)
 

Защищенные данные

int m_TendencyDrain
 
float m_ItemQuantity
 
float m_SpentQuantity
 
float m_SpentQuantity_total
 
float m_ItemMaxQuantity
 
float m_TimeElpased
 
float m_QuantityUsedPerSecond
 
float m_AdjustedQuantityUsedPerSecond
 
float m_DefaultTimeStep
 
ref Param1< floatm_SpentUnits
 

Подробное описание

Конструктор(ы)

◆ CAContinuousQuantityLiquidTransfer()

void CAContinuousQuantityLiquidTransfer ( float quantity_used_per_second,
float time_to_progress,
int drain = -1 )
inlineprotected
15 {
19 }
float m_QuantityUsedPerSecond
Definition CAContinuousQuantityLiquidTransfer.c:9
float m_DefaultTimeStep
Definition CAContinuousQuantityLiquidTransfer.c:11
int m_TendencyDrain
Definition CAContinuousQuantityLiquidTransfer.c:3
Definition EntityAI.c:95

Перекрестные ссылки m_DefaultTimeStep, m_QuantityUsedPerSecond и m_TendencyDrain.

Методы

◆ CalcAndSetQuantity()

void CalcAndSetQuantity ( ActionData action_data)
inlineprotected
132 {
133 ItemBase target_item = ItemBase.Cast(action_data.m_Target.GetObject());
135
136 if (GetGame().IsServer())
137 {
138 if (m_SpentUnits)
139 {
142 }
143
144 //could move following stuff to action itself, if needed
145 if (m_TendencyDrain)
146 {
148 }
149 else
150 {
152 }
153 }
154 m_SpentQuantity = 0;
155 }
void SetACData(Param units)
Definition CABase.c:40
float m_SpentQuantity_total
Definition CAContinuousQuantityLiquidTransfer.c:6
float m_SpentQuantity
Definition CAContinuousQuantityLiquidTransfer.c:5
ref Param1< float > m_SpentUnits
Definition CAContinuousQuantityLiquidTransfer.c:12
Definition InventoryItem.c:731
Definition Liquid.c:2
static void Transfer(ItemBase source_ent, ItemBase target_ent, float quantity=-1)
Definition Liquid.c:39
proto native CGame GetGame()

Перекрестные ссылки GetGame(), m_SpentQuantity, m_SpentQuantity_total, m_SpentUnits, m_TendencyDrain, CABase::SetACData() и Liquid::Transfer().

◆ Cancel()

override int Cancel ( ActionData action_data)
inlineprotected
107 {
108 if (!action_data.m_Player || m_TendencyDrain == -1 || !action_data.m_Target || !action_data.m_Target.GetObject())
109 {
110 return UA_ERROR;
111 }
112
114 return UA_INTERRUPT;
115 }
void CalcAndSetQuantity()
Definition FireplaceBase.c:2622
const int UA_ERROR
Definition constants.c:455
const int UA_INTERRUPT
Definition constants.c:438

Перекрестные ссылки CalcAndSetQuantity(), m_TendencyDrain, UA_ERROR и UA_INTERRUPT.

◆ Execute()

override int Execute ( ActionData action_data)
inlineprotected
69 {
70 ItemBase target_item = ItemBase.Cast(action_data.m_Target.GetObject());
71
72 if (!action_data.m_Player || m_TendencyDrain == -1 || !action_data.m_Target)
73 {
74 return UA_ERROR;
75 }
76
77 if (m_ItemQuantity <= 0)
78 {
79 return UA_FINISHED;
80 }
81 else
82 {
84 {
85 m_AdjustedQuantityUsedPerSecond = action_data.m_Player.GetSoftSkillsManager().AddSpecialtyBonus(m_QuantityUsedPerSecond, m_Action.GetSpecialtyWeight(), true);
87 m_TimeElpased += action_data.m_Player.GetDeltaT();
88
90 {
92 m_TimeElpased = 0;
93 }
94
95 return UA_PROCESSING;
96 }
97 else
98 {
101 return UA_FINISHED;
102 }
103 }
104 }
ActionBase m_Action
Definition CABase.c:3
void OnCompletePogress(ActionData action_data)
Definition CAContinuousBase.c:8
float m_AdjustedQuantityUsedPerSecond
Definition CAContinuousQuantityLiquidTransfer.c:10
float m_ItemQuantity
Definition CAContinuousQuantityLiquidTransfer.c:4
float m_TimeElpased
Definition CAContinuousQuantityLiquidTransfer.c:8
const int UA_FINISHED
Definition constants.c:436
const int UA_PROCESSING
Definition constants.c:434

Перекрестные ссылки CalcAndSetQuantity(), CABase::m_Action, m_AdjustedQuantityUsedPerSecond, m_DefaultTimeStep, m_ItemQuantity, m_QuantityUsedPerSecond, m_SpentQuantity, m_SpentQuantity_total, m_TendencyDrain, m_TimeElpased, CAContinuousBase::OnCompletePogress(), UA_ERROR, UA_FINISHED и UA_PROCESSING.

◆ GetProgress()

override float GetProgress ( )
inlineprotected
118 {
119 if (m_TendencyDrain)
120 {
122 }
123 else
124 {
126 }
127 }
float m_ItemMaxQuantity
Definition CAContinuousQuantityLiquidTransfer.c:7

Перекрестные ссылки m_ItemMaxQuantity, m_SpentQuantity_total и m_TendencyDrain.

◆ Setup()

override void Setup ( ActionData action_data)
inlineprotected
22 {
23 ItemBase target_item = ItemBase.Cast(action_data.m_Target.GetObject());
24
25 m_TimeElpased = 0;
27
28 if (!m_SpentUnits)
29 {
31 }
32 else
33 {
34 m_SpentUnits.param1 = 0;
35 }
36
37 m_QuantityUsedPerSecond *= Math.Min(action_data.m_MainItem.GetLiquidThroughputCoef(),target_item.GetLiquidThroughputCoef());
38
39 if (m_TendencyDrain == 1)
40 {
41 if (target_item.GetQuantity() > (action_data.m_MainItem.GetQuantityMax() - action_data.m_MainItem.GetQuantity()))
42 {
43 m_ItemMaxQuantity = action_data.m_MainItem.GetQuantityMax() - action_data.m_MainItem.GetQuantity();
44 }
45 else
46 {
47 m_ItemMaxQuantity = target_item.GetQuantity();
48 }
49
51 }
52 else if (m_TendencyDrain == 0)
53 {
54 if (action_data.m_MainItem.GetQuantity() > (target_item.GetQuantityMax() - target_item.GetQuantity()))
55 {
56 m_ItemMaxQuantity = target_item.GetQuantityMax() - target_item.GetQuantity();
57 }
58 else
59 {
60 m_ItemMaxQuantity = action_data.m_MainItem.GetQuantity();
61 }
62
64 }
65 }
Definition EnMath.c:7
static proto float Min(float x, float y)
Returns smaller of two given values.

Перекрестные ссылки m_ItemMaxQuantity, m_ItemQuantity, m_QuantityUsedPerSecond, m_SpentQuantity, m_SpentUnits, m_TendencyDrain, m_TimeElpased и Math::Min().

Поля

◆ m_AdjustedQuantityUsedPerSecond

float m_AdjustedQuantityUsedPerSecond
protected

Используется в Execute().

◆ m_DefaultTimeStep

float m_DefaultTimeStep
protected

Используется в CAContinuousQuantityLiquidTransfer() и Execute().

◆ m_ItemMaxQuantity

float m_ItemMaxQuantity
protected

Используется в GetProgress() и Setup().

◆ m_ItemQuantity

float m_ItemQuantity
protected

Используется в Execute() и Setup().

◆ m_QuantityUsedPerSecond

float m_QuantityUsedPerSecond
protected

Используется в CAContinuousQuantityLiquidTransfer(), Execute() и Setup().

◆ m_SpentQuantity

float m_SpentQuantity
protected

Используется в CalcAndSetQuantity(), Execute() и Setup().

◆ m_SpentQuantity_total

float m_SpentQuantity_total
protected

Используется в CalcAndSetQuantity(), Execute() и GetProgress().

◆ m_SpentUnits

ref Param1<float> m_SpentUnits
protected

Используется в CalcAndSetQuantity() и Setup().

◆ m_TendencyDrain

int m_TendencyDrain
protected

◆ m_TimeElpased

float m_TimeElpased
protected

Используется в Execute() и Setup().


Объявления и описания членов класса находятся в файле: