DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ Consume() [2/2]

bool ManBase::Consume ( PlayerConsumeData data)
inlineprivate

См. определение в файле PlayerBase.c строка 7689

7690 {
7691 PluginTransmissionAgents plugin = PluginTransmissionAgents.Cast(GetPlugin(PluginTransmissionAgents));
7692 WorldData worldData = g_Game.GetMission().GetWorldData();
7693 int pollution = worldData.GetPollution();
7694 float temperature = 0;
7695
7696 if (data.m_Type == EConsumeType.ENVIRO_POND || data.m_Type == EConsumeType.ENVIRO_WELL || data.m_Type == EConsumeType.ENVIRO_SNOW)
7697 {
7698 if (data.m_Type != EConsumeType.ENVIRO_WELL)
7699 {
7700 if (pollution & EPollution.HEAVYMETAL)
7701 data.m_Agents = data.m_Agents | eAgents.HEAVYMETAL;
7702
7703 if (data.m_Type == EConsumeType.ENVIRO_POND)
7704 data.m_Agents = data.m_Agents | eAgents.CHOLERA;
7705 }
7706
7707 temperature = worldData.GetLiquidTypeEnviroTemperature(data.m_LiquidType);
7708 m_PlayerStomach.AddToStomach(Liquid.GetLiquidClassname(LIQUID_WATER), data.m_Amount, 0 , data.m_Agents, temperature);
7709
7710 return true;
7711 }
7712
7713 Edible_Base edibleItem = Edible_Base.Cast(data.m_Source);
7714 if (!edibleItem || !edibleItem.CanBeConsumed())
7715 return false;
7716
7717 if (data.m_Type == EConsumeType.ITEM_SINGLE_TIME || data.m_Type == EConsumeType.ITEM_CONTINUOUS)
7718 {
7719 data.m_Agents = edibleItem.FilterAgents(data.m_Agents | edibleItem.GetAgents());
7720 temperature = edibleItem.GetTemperature();
7721
7722 if (data.m_Type == EConsumeType.ITEM_SINGLE_TIME)
7723 plugin.TransmitAgents(edibleItem, this, AGT_UACTION_CONSUME, data.m_Amount);
7724
7725 if (edibleItem.IsLiquidContainer())
7726 {
7727 int liquidType = edibleItem.GetLiquidType();
7728 string liquidClassName = Liquid.GetLiquidClassname(liquidType);
7729 if (liquidClassName.Length() == 0)
7730 Error("Error! Trying to add unknown liquid to stomach with item=" + Object.GetDebugName(edibleItem) + " data.m_Type=" + data.m_Type + " liquid_type=" + liquidType);
7731
7732 m_PlayerStomach.AddToStomach(liquidClassName, data.m_Amount, 0, data.m_Agents, temperature);
7733 }
7734 else
7735 {
7736 int foodStageType;
7737 if (edibleItem.GetFoodStage())
7738 foodStageType = edibleItem.GetFoodStage().GetFoodStageType();
7739
7740 m_PlayerStomach.AddToStomach(data.m_Source.GetType(), data.m_Amount, foodStageType, data.m_Agents, temperature);
7741 }
7742
7743 edibleItem.Consume(data.m_Amount, this);
7744
7745 return true;
7746
7747 }
7748
7749 return false;
7750 }
DayZGame g_Game
Определения DayZGame.c:4074
eAgents
Определения EAgents.c:3
EConsumeType
Определения EConsumeType.c:2
void Edible_Base()
Определения Edible_Base.c:1137
PluginBase GetPlugin(typename plugin_type)
Определения PluginManager.c:326
int FilterAgents(int agentsIn)
Filter agents from the item (override on higher implementations)
Определения Edible_Base.c:112
bool Consume(float amount, PlayerBase consumer)
Определения Edible_Base.c:95
override FoodStage GetFoodStage()
Определения Edible_Base.c:361
ref PlayerStomach m_PlayerStomach
Определения PlayerBase.c:323
EConsumeType m_Type
Определения PlayerConsumeData.c:8
float m_Amount
Определения PlayerConsumeData.c:3
int m_LiquidType
Определения PlayerConsumeData.c:5
int m_Agents
Определения PlayerConsumeData.c:4
ItemBase m_Source
Определения PlayerConsumeData.c:7
int GetPollution()
Определения WorldData.c:292
float GetLiquidTypeEnviroTemperature(int liquidType)
Определения WorldData.c:239
class LOD Object
const int AGT_UACTION_CONSUME
Определения 3_Game/DayZ/constants.c:533
void Error(string err)
Messagebox with error message.
Определения EnDebug.c:90
const int LIQUID_WATER
Определения 3_Game/DayZ/constants.c:578
proto native int Length()
Returns length of string.

Перекрестные ссылки AGT_UACTION_CONSUME, Edible_Base::Consume(), Error(), Edible_Base::FilterAgents(), g_Game, Edible_Base::GetFoodStage(), WorldData::GetLiquidTypeEnviroTemperature(), GetPlugin(), WorldData::GetPollution(), string::Length(), LIQUID_WATER, PlayerConsumeData::m_Agents, PlayerConsumeData::m_Amount, PlayerConsumeData::m_LiquidType, m_PlayerStomach, PlayerConsumeData::m_Source и PlayerConsumeData::m_Type.