DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
Cooking.c
См. документацию.
2{
3 NONE = 0, //no cooking method available
4 BAKING = 1,
5 BOILING = 2,
6 DRYING = 3,
7 TIME = 4,
8
10}
11
12class Cooking
13{
14 static const float TIME_WITH_SUPPORT_MATERIAL_COEF = 1.0;
15 static const float TIME_WITHOUT_SUPPORT_MATERIAL_COEF = 2.0;
16
17 static const float COOKING_FOOD_TIME_INC_VALUE = 2;
18 static const float COOKING_LARD_DECREASE_COEF = 25;
21
22 static const float DEFAULT_COOKING_TEMPERATURE = 150; //default temperature for cooking (e.g. cooking on stick)
23 static const float FOOD_MAX_COOKING_TEMPERATURE = 150; //
24 static const float PARAM_BURN_DAMAGE_COEF = 0.05; //value for calculating damage on items located in fireplace CargoGrid
25
26 static const float LIQUID_BOILING_POINT = 150; //default boiling point for liquids, overriden by 'liquidBoilingThreshold' in cfgLiquidDefinitions
27 static const float LIQUID_VAPOR_QUANTITY = 2; //vaporization quantity loss
28 static const float SOLID_OVERHEAT_QUANTITY = 2; //solid overheat quantity loss
29
30 static const float BURNING_WARNING_THRESHOLD = 0.75;
31
35 typename COOKING_INGREDIENT_LARD = Lard;
36
37 protected float m_UpdateTime = 1; //set by the item/system using cooking
38
39 void SetCookingUpdateTime(float val)
40 {
41 m_UpdateTime = val;
42 }
43
44 void ProcessItemToCook(notnull ItemBase pItem, ItemBase cookingEquip, Param2<CookingMethodType, float> pCookingMethod, out Param2<bool, bool> pStateFlags)
45 {
46 Edible_Base item_to_cook = Edible_Base.Cast(pItem);
47 if (item_to_cook && item_to_cook.CanBeCooked())
48 {
50 UpdateCookingState(item_to_cook, pCookingMethod.param1, cookingEquip, pCookingMethod.param2);
51
52 //check for done state for boiling and drying
53 if (item_to_cook.IsFoodBoiled() || item_to_cook.IsFoodDried())
54 {
55 pStateFlags.param1 |= true;
56 }
58 else if (item_to_cook.IsFoodBaked() && item_to_cook.Type() != Lard)
59 {
60 pStateFlags.param1 |= true;
61 }
63 else if (item_to_cook.IsFoodBurned())
64 {
65 pStateFlags.param2 |= true;
66 }
67 }
68 else
69 {
70 //add temperature to item
71 if (pItem != cookingEquip) //1st order item already handled by the fireplace directly!
72 AddTemperatureToItem(pItem, null, 0);
73
74 int liquidType = pItem.GetLiquidType();
75 bool handleLiquid = pItem.IsLiquidContainer() && liquidType != LIQUID_NONE;
76 bool isLiquiBoiling = handleLiquid && pItem.GetTemperature() >= Liquid.GetBoilThreshold(liquidType);
77
78 //handle items that can actually overheat
79 if (pItem.CanItemOverheat())
80 {
81 //handle qty first
82 if (pItem.HasQuantity() && pItem.GetQuantityNormalized() > 0)
83 {
84 if (handleLiquid)
85 {
86 if (pItem.IsItemOverheated() || isLiquiBoiling) //overheat causes qty loss here!
87 pItem.AddQuantity(-LIQUID_VAPOR_QUANTITY,false);
88 }
89 else if (pItem.IsItemOverheated())
90 {
91 pItem.AddQuantity(-SOLID_OVERHEAT_QUANTITY,true);
92 }
93 }//next handle damage
94 else if (!pItem.IsCookware() && pItem.IsItemOverheated()) //cookware already damaged by fireplace, skipping
95 {
96 pItem.DecreaseHealth(PARAM_BURN_DAMAGE_COEF * 100);
97 }
98 }
99 else
100 {
101 if (!pItem.IsCookware()) //cookware already damaged by fireplace, skipping
102 pItem.DecreaseHealth(PARAM_BURN_DAMAGE_COEF * 100);
103
104 if (isLiquiBoiling)
105 pItem.AddQuantity(-LIQUID_VAPOR_QUANTITY,false);
106 }
107
108 //last handle agents
109 if (isLiquiBoiling)
110 pItem.RemoveAllAgentsExcept(eAgents.HEAVYMETAL);
111 }
112 }
113
114 //COOKING PROCESS
115 //--- Cooking with equipment (pot)
116 //Returns 1 if the item changed its cooking stage, 0 if not
117 int CookWithEquipment(ItemBase cooking_equipment, float cooking_time_coef = 1)
118 {
119 bool is_empty = true;
120
121 //check cooking conditions
122 if (cooking_equipment == null)
123 return 0;
124
125 if (cooking_equipment.IsRuined())
126 return 0;
127
128 //manage items in cooking equipment
129 Param2<bool, bool> stateFlags = new Param2<bool, bool>(false, false); // 1st - done; 2nd - burned
130 Param2<CookingMethodType, float> cookingMethodWithTime = GetCookingMethodWithTimeOverride(cooking_equipment);
131 if (cooking_time_coef != 1)
132 cookingMethodWithTime.param2 = cooking_time_coef;
133
134 //handle the cooking equipment/direct cooking first
135 ProcessItemToCook(cooking_equipment, cooking_equipment, cookingMethodWithTime, stateFlags);
136
137 //cooking method may have changed due to liquid evaporating, refresh..
138 if (cooking_equipment.IsCookware() && cooking_equipment.IsLiquidContainer())
139 {
140 cookingMethodWithTime = GetCookingMethodWithTimeOverride(cooking_equipment);
141 if (cooking_time_coef != 1)
142 cookingMethodWithTime.param2 = cooking_time_coef;
143 }
144
145 //handle the cooking inside of a container last
146 CargoBase cargo = cooking_equipment.GetInventory().GetCargo();
147 if (cargo)
148 {
149 int count = cargo.GetItemCount();
150 is_empty = count == 0;
151
152 //process items
153 for (int i = 0; i < count; i++)
154 {
155 ProcessItemToCook(ItemBase.Cast(cargo.GetItem(i)), cooking_equipment, cookingMethodWithTime, stateFlags);
156 }
157 }
158
159 //manage equipment EFFECTS
160 int liquidType = cooking_equipment.GetLiquidType();
161 //handle liquid boiling EFFECTS
162 if (cooking_equipment.IsLiquidContainer() && liquidType != LIQUID_NONE)
163 {
164 if (cooking_equipment.GetTemperature() >= Liquid.GetBoilThreshold(liquidType))
165 {
166 //handle boiling audiovisuals for any liquid container
167 cooking_equipment.RefreshAudioVisualsOnClient(cookingMethodWithTime.param1, stateFlags.param1, is_empty, stateFlags.param2);
168 }
169 else
170 {
171 cooking_equipment.RemoveAudioVisualsOnClient();
172 }
173 }
174 else if (cooking_equipment.IsCookware())
175 {
176 //handle non-boiling audiovisuals for cookware only
177 cooking_equipment.RefreshAudioVisualsOnClient(cookingMethodWithTime.param1, stateFlags.param1, is_empty, stateFlags.param2);
178 }
179
180 return 1;
181 }
182
183 //Returns 1 if the item changed its cooking stage, 0 if not
184 int CookOnStick( Edible_Base item_to_cook, float cook_time_inc )
185 {
186 if ( item_to_cook && item_to_cook.CanBeCookedOnStick() )
187 {
188 //update food
189 return UpdateCookingStateOnStick( item_to_cook, cook_time_inc );
190 }
191
192 return 0;
193 }
194
195 //Returns 1 if the item changed its cooking stage, 0 if not
196 protected int UpdateCookingState(Edible_Base item_to_cook, CookingMethodType cooking_method, ItemBase cooking_equipment, float cooking_time_coef)
197 {
198 //food properties
199 float food_temperature = item_to_cook.GetTemperature();
200
201 //{min_temperature, time_to_cook, max_temperature (optional)}
202 //get next stage name - if next stage is not defined, next stage name will be empty "" and no cooking properties (food_min_temp, food_time_to_cook, food_max_temp) will be set
203 FoodStageType new_stage_type = item_to_cook.GetNextFoodStageType(cooking_method);
204
205 float food_min_temp = 0;
206 float food_time_to_cook = 0;
207
208 //Set next stage cooking properties if next stage possible
209 if (item_to_cook.CanChangeToNewStage(cooking_method)) // new_stage_type != NONE
210 {
211 array<float> next_stage_cooking_properties = new array<float>();
212 next_stage_cooking_properties = FoodStage.GetAllCookingPropertiesForStage(new_stage_type, null, item_to_cook.GetType());
213
214 food_min_temp = next_stage_cooking_properties.Get(eCookingPropertyIndices.MIN_TEMP); //checked after temperature is changed
215 food_time_to_cook = next_stage_cooking_properties.Get(eCookingPropertyIndices.COOK_TIME);
216 }
217
218 //add temperature
219 AddTemperatureToItem(item_to_cook, cooking_equipment, food_min_temp);
220
221 //decrease qty of burned items (or cookable items that can't be burned)
222 if (item_to_cook.IsItemOverheated())
224
225 //add cooking time if the food can be cooked by this method
226 if (food_min_temp > 0 && food_temperature >= food_min_temp)
227 {
229 item_to_cook.MakeSoundsOnClient(true,cooking_method);
230
231 float new_cooking_time = item_to_cook.GetCookingTime() + COOKING_FOOD_TIME_INC_VALUE * cooking_time_coef;
232 item_to_cook.SetCookingTime(new_cooking_time);
233
234 //progress to next stage
235 if (item_to_cook.GetCookingTime() >= food_time_to_cook)
236 {
238 if (item_to_cook.GetFoodStageType() != new_stage_type)
239 {
240 item_to_cook.ChangeFoodStage(new_stage_type);
241
242 if (cooking_equipment && cooking_equipment != item_to_cook)
243 {
244 if (cooking_method == CookingMethodType.BAKING)
245 {
246 ItemBase lard = GetItemTypeFromCargo(COOKING_INGREDIENT_LARD, cooking_equipment);
247 if (lard)
248 {
249 //decrease lard quantity
250 float lardQuantity = lard.GetQuantity() - COOKING_LARD_DECREASE_COEF;
251 lardQuantity = Math.Clamp(lardQuantity, 0, lard.GetQuantityMax());
252 lard.SetQuantity(lardQuantity);
253 }
254 else
255 {
258 }
259 }
260 }
261 else
262 {
265 }
266 }
267
268 //reset cooking time
269 item_to_cook.ResetCookingTime();
270
271 return 1;
272 }
273 }
274 else
275 {
276 item_to_cook.MakeSoundsOnClient(false);
277 }
278
279 return 0;
280 }
281
282 //Returns 1 if the item changed its cooking stage, 0 if not
283 protected int UpdateCookingStateOnStick( Edible_Base item_to_cook, float cook_time_inc )
284 {
285 //food properties
286 float food_temperature = item_to_cook.GetTemperature();
287
288 //{min_temperature, time_to_cook, max_temperature (optional)}
289 //get next stage name - if next stage is not defined, next stage name will be empty "" and no cooking properties (food_min_temp, food_time_to_cook, food_max_temp) will be set
290 FoodStageType new_stage_type = item_to_cook.GetNextFoodStageType( CookingMethodType.BAKING );
291 float food_min_temp = 0;
292 float food_time_to_cook = 0;
293 bool is_done = false; // baked
294 bool is_burned = false; // burned
295
296 //Set next stage cooking properties if next stage possible
297 if ( item_to_cook.CanChangeToNewStage( CookingMethodType.BAKING ) )
298 {
299 array<float> next_stage_cooking_properties = new array<float>;
300 next_stage_cooking_properties = FoodStage.GetAllCookingPropertiesForStage( new_stage_type, null, item_to_cook.GetType() );
301
302 food_min_temp = next_stage_cooking_properties.Get( eCookingPropertyIndices.MIN_TEMP );
303 food_time_to_cook = next_stage_cooking_properties.Get( eCookingPropertyIndices.COOK_TIME );
304 }
305
306 if (item_to_cook.GetInventory().IsAttachment())
307 {
308 //add temperature
309 AddTemperatureToItem(item_to_cook, null, food_min_temp);
310 }
311
312 //add cooking time if the food can be cooked by this method
313 if (food_min_temp > 0 && food_temperature >= food_min_temp)
314 {
315 //refresh audio
316 item_to_cook.MakeSoundsOnClient(true, CookingMethodType.BAKING);
317
318 float new_cooking_time = item_to_cook.GetCookingTime() + cook_time_inc;
319 item_to_cook.SetCookingTime( new_cooking_time );
320
321 //progress to next stage
322 if (item_to_cook.GetCookingTime() >= food_time_to_cook)
323 {
325 if (item_to_cook.GetFoodStageType() != new_stage_type)
326 {
327 item_to_cook.ChangeFoodStage(new_stage_type);
328
330 }
331 //reset cooking time
332 item_to_cook.ResetCookingTime();
333 return 1;
334 }
335 }
336 else
337 {
338 item_to_cook.MakeSoundsOnClient(false);
339 }
340
341 return 0;
342 }
343
344 void SmokeItem(Edible_Base item_to_cook, float cook_time_inc)
345 {
346 if (item_to_cook)
347 {
348 float new_cook_time = item_to_cook.GetCookingTime() + cook_time_inc;
349 float drying_cook_time = FoodStage.GetCookingPropertyFromIndex(eCookingPropertyIndices.COOK_TIME, FoodStageType.DRIED, null, item_to_cook.GetType());
350 float drying_cook_temp = FoodStage.GetCookingPropertyFromIndex(eCookingPropertyIndices.MIN_TEMP, FoodStageType.DRIED, null, item_to_cook.GetType());
351 float itemTemp = item_to_cook.GetTemperature();
352
353 if (itemTemp >= drying_cook_temp)
354 {
355 switch (item_to_cook.GetFoodStageType())
356 {
357 case FoodStageType.RAW:
358 item_to_cook.SetCookingTime(new_cook_time);
359
360 if (item_to_cook.GetCookingTime() >= drying_cook_time)
361 {
362 item_to_cook.ChangeFoodStage(FoodStageType.DRIED);
363 item_to_cook.ResetCookingTime();
364 }
365 break;
366
367 default:
368 item_to_cook.SetCookingTime(new_cook_time);
369
370 if (item_to_cook.GetCookingTime() >= drying_cook_time)
371 {
372 item_to_cook.ChangeFoodStage(FoodStageType.BURNED);
373 item_to_cook.ResetCookingTime();
374 }
375 break;
376 }
377 }
378 }
379 }
380
382 {
383 Edible_Base edible;
384 if (pItem)
385 {
386 CargoBase cargo = pItem.GetInventory().GetCargo();
387 if (cargo) // cookware
388 {
389 for (int i = 0; i < cargo.GetItemCount(); i++)
390 {
391 edible = Edible_Base.Cast(cargo.GetItem(i));
392 if (edible)
393 {
394 edible.MakeSoundsOnClient(false);
395 }
396 }
397 }
398 else
399 {
400 edible = Edible_Base.Cast(pItem);
401 if (edible)
402 {
403 edible.MakeSoundsOnClient(false);
404 }
405 }
406 }
407 }
408
410 protected ItemBase GetItemTypeFromCargo( typename item_type, ItemBase cooking_equipment )
411 {
412 CargoBase cargo = cooking_equipment.GetInventory().GetCargo();
413 if (cargo)
414 {
415 for (int i = 0; i < cargo.GetItemCount(); i++)
416 {
417 EntityAI entity = cargo.GetItem(i);
418 if (entity.Type() == item_type)
419 {
420 ItemBase item = ItemBase.Cast(entity);
421
422 return item;
423 }
424 }
425 }
426
427 return null;
428 }
429
431 {
432 if (cooking_equipment.IsCookware())
433 {
434 if (cooking_equipment.GetQuantity() > 0)
435 {
436 if (cooking_equipment.GetLiquidType() == LIQUID_GASOLINE)
437 {
440 }
441
443 }
444
445 if (GetItemTypeFromCargo(COOKING_INGREDIENT_LARD, cooking_equipment))
446 {
447 //has lard in cargo, slower process
449 }
450
451 if (cooking_equipment.GetInventory().GetCargo().GetItemCount() > 0)
452 {
454 }
455
457 }
458 else if (cooking_equipment.IsLiquidContainer() && cooking_equipment.GetQuantity() > 0 && cooking_equipment.GetLiquidType() != LIQUID_GASOLINE) //fake 'boiling' on liquid containers, for effects playback
459 {
461 }
462
464 }
465
467 {
468 Edible_Base food_on_stick = Edible_Base.Cast( stick_item.GetAttachmentByType( Edible_Base ) );
469
470 return food_on_stick;
471 }
472
473 float GetTimeToCook( Edible_Base item_to_cook, CookingMethodType cooking_method )
474 {
475 FoodStageType food_stage_type = item_to_cook.GetNextFoodStageType( cooking_method );
476 return FoodStage.GetCookingPropertyFromIndex( eCookingPropertyIndices.COOK_TIME, food_stage_type, null, item_to_cook.GetType());
477 }
478
479 float GetMinTempToCook( Edible_Base item_to_cook, CookingMethodType cooking_method )
480 {
481 FoodStageType food_stage_type = item_to_cook.GetNextFoodStageType( cooking_method );
482 return FoodStage.GetCookingPropertyFromIndex( eCookingPropertyIndices.MIN_TEMP, food_stage_type, null, item_to_cook.GetType());
483 }
484
485 //add temperature to item
486 protected void AddTemperatureToItem( ItemBase cooked_item, ItemBase cooking_equipment, float min_temperature )
487 {
488 if (!GetGame().IsServer())
489 return;
490
491 if (cooked_item == cooking_equipment) //solves direct cooking double heating
492 return;
493
494 if (cooked_item.CanHaveTemperature())
495 {
496 float itemTemp = cooked_item.GetTemperature();
497 //set target temperature
498 float targetTemp;
499 if (!cooked_item.GetHierarchyRoot().GetCookingTargetTemperature(targetTemp)) //if not valid, fallback values enter the equation
500 {
501 if (cooking_equipment)
502 targetTemp = cooking_equipment.GetTemperature();
503 else
504 targetTemp = DEFAULT_COOKING_TEMPERATURE;
505 }
506
507 //adjust temperature
508 if (targetTemp != itemTemp || !cooked_item.IsFreezeThawProgressFinished())
509 {
510 float heatPermCoef = 1.0;
511 if (cooking_equipment)
512 heatPermCoef = cooking_equipment.GetHeatPermeabilityCoef();
513 heatPermCoef *= cooked_item.GetHeatPermeabilityCoef();
514 cooked_item.SetTemperatureEx(new TemperatureDataInterpolated(targetTemp,ETemperatureAccessTypes.ACCESS_COOKING,m_UpdateTime,GameConstants.TEMP_COEF_COOKING_DEFAULT,heatPermCoef));
515 }
516 }
517 }
518
519 protected void DecreaseCookedItemQuantity(notnull Edible_Base pItem, float pAmount = 0.0)
520 {
521 if (GetGame().IsServer())
522 {
523 float quantity = pItem.GetQuantity() - pAmount;
524 quantity = Math.Clamp(quantity, 0, pItem.GetQuantityMax());
525 pItem.SetQuantity(quantity);
526 }
527 }
528
530 //DEPRECATED cooking stuff
532 protected CookingMethodType GetCookingMethod(ItemBase cooking_equipment)
533 {
534 if (cooking_equipment.Type() == COOKING_EQUIPMENT_POT || cooking_equipment.Type() == COOKING_EQUIPMENT_CAULDRON)
535 {
536 //has water, but not petrol dammit X)
537 if (cooking_equipment.GetQuantity() > 0 && cooking_equipment.GetLiquidType() != LIQUID_GASOLINE)
538 {
539 return CookingMethodType.BOILING;
540 }
541
542 //has lard in cargo
543 if (GetItemTypeFromCargo(COOKING_INGREDIENT_LARD, cooking_equipment))
544 {
545 return CookingMethodType.BAKING;
546 }
547 return CookingMethodType.DRYING;
548 }
549
550 if (cooking_equipment.Type() == COOKING_EQUIPMENT_FRYINGPAN)
551 {
552 if (GetItemTypeFromCargo(COOKING_INGREDIENT_LARD, cooking_equipment))
553 {
554 return CookingMethodType.BAKING;
555 }
556 return CookingMethodType.DRYING;
557 }
558
559 return CookingMethodType.NONE;
560 }
561}
float GetMinTempToCook(Edible_Base item_to_cook, CookingMethodType cooking_method)
Определения Cooking.c:479
static const float COOKING_FOOD_TIME_INC_VALUE
time modifier used when using support material
Определения Cooking.c:17
COOKING_EQUIPMENT_CAULDRON
Определения Cooking.c:34
void TerminateCookingSounds(ItemBase pItem)
Определения Cooking.c:381
static const float COOKING_LARD_DECREASE_COEF
time increase when cooking a food
Определения Cooking.c:18
Edible_Base GetFoodOnStick(ItemBase stick_item)
Определения Cooking.c:466
static const float SOLID_OVERHEAT_QUANTITY
Определения Cooking.c:28
static const float COOKING_FOOD_QUANTITY_DECREASE_AMOUNT_NONE
how many units from quantity of lard are remove at each stage
Определения Cooking.c:19
void ProcessItemToCook(notnull ItemBase pItem, ItemBase cookingEquip, Param2< CookingMethodType, float > pCookingMethod, out Param2< bool, bool > pStateFlags)
Определения Cooking.c:44
static const float DEFAULT_COOKING_TEMPERATURE
NOT USED.
Определения Cooking.c:22
CookingMethodType
Определения Cooking.c:2
@ BAKING
Определения Cooking.c:4
@ DRYING
Определения Cooking.c:6
@ BOILING
Определения Cooking.c:5
float m_UpdateTime
Определения Cooking.c:37
Param2< CookingMethodType, float > GetCookingMethodWithTimeOverride(ItemBase cooking_equipment)
Определения Cooking.c:430
static const float LIQUID_BOILING_POINT
Определения Cooking.c:26
float GetTimeToCook(Edible_Base item_to_cook, CookingMethodType cooking_method)
Определения Cooking.c:473
static const float PARAM_BURN_DAMAGE_COEF
Определения Cooking.c:24
CookingMethodType GetCookingMethod(ItemBase cooking_equipment)
DEPRECATED.
Определения Cooking.c:532
static const float LIQUID_VAPOR_QUANTITY
Определения Cooking.c:27
void SmokeItem(Edible_Base item_to_cook, float cook_time_inc)
Определения Cooking.c:344
COOKING_EQUIPMENT_POT
0..1, validly cooked item will pre-emptively start emitting burning sounds when this close to being b...
Определения Cooking.c:32
enum CookingMethodType TIME_WITH_SUPPORT_MATERIAL_COEF
static const float FOOD_MAX_COOKING_TEMPERATURE
Определения Cooking.c:23
COOKING_INGREDIENT_LARD
Определения Cooking.c:35
void DecreaseCookedItemQuantity(notnull Edible_Base pItem, float pAmount=0.0)
Определения Cooking.c:519
int CookOnStick(Edible_Base item_to_cook, float cook_time_inc)
Определения Cooking.c:184
void SetCookingUpdateTime(float val)
Определения Cooking.c:39
int UpdateCookingState(Edible_Base item_to_cook, CookingMethodType cooking_method, ItemBase cooking_equipment, float cooking_time_coef)
Определения Cooking.c:196
int UpdateCookingStateOnStick(Edible_Base item_to_cook, float cook_time_inc)
Определения Cooking.c:283
static const float BURNING_WARNING_THRESHOLD
Определения Cooking.c:30
static const float TIME_WITHOUT_SUPPORT_MATERIAL_COEF
time modifier used when not using support material
Определения Cooking.c:15
COOKING_EQUIPMENT_FRYINGPAN
Определения Cooking.c:33
void AddTemperatureToItem(ItemBase cooked_item, ItemBase cooking_equipment, float min_temperature)
Определения Cooking.c:486
static const float COOKING_FOOD_QUANTITY_DECREASE_AMOUNT_LARD
how many units from quantity of item are removed at each FoodStage change when support material is NO...
Определения Cooking.c:20
ItemBase GetItemTypeFromCargo(typename item_type, ItemBase cooking_equipment)
Cooking data.
Определения Cooking.c:410
eAgents
Определения EAgents.c:3
@ TIME
Определения EDynamicMusicPlayerCategory.c:5
@ COUNT
Определения EGameStateIcons.c:7
void CookWithEquipment()
Определения FireplaceBase.c:2128
FoodStageType
Определения FoodStage.c:2
ETemperatureAccessTypes
Определения TemperatureAccessConstants.c:2
proto native int GetItemCount()
proto native EntityAI GetItem(int index)
represents base for cargo storage for entities
Определения Cargo.c:7
Определения Cauldron.c:2
void MakeSoundsOnClient(bool soundstate, CookingMethodType cookingMethod=CookingMethodType.NONE)
Определения Edible_Base.c:215
FoodStageType GetFoodStageType()
Определения Edible_Base.c:531
override bool CanBeCookedOnStick()
Определения Edible_Base.c:134
FoodStageType GetNextFoodStageType(CookingMethodType cooking_method)
Определения Edible_Base.c:603
bool IsFoodBoiled()
Определения Edible_Base.c:557
float GetCookingTime()
Определения Edible_Base.c:657
void SetCookingTime(float time)
Определения Edible_Base.c:662
void ResetCookingTime()
Определения Edible_Base.c:670
override bool CanBeCooked()
Определения Edible_Base.c:129
void ChangeFoodStage(FoodStageType new_food_stage_type)
Определения Edible_Base.c:598
bool IsFoodBaked()
Определения Edible_Base.c:547
bool CanChangeToNewStage(CookingMethodType cooking_method)
Определения Edible_Base.c:613
bool IsFoodDried()
Определения Edible_Base.c:567
bool IsFoodBurned()
Определения Edible_Base.c:577
Определения Edible_Base.c:2
Определения Building.c:6
Определения FryingPan.c:2
Определения constants.c:659
override bool SetQuantity(float value, bool destroy_config=true, bool destroy_forced=false, bool allow_client=false, bool clamp_to_stack_max=true)
Определения PileOfWoodenPlanks.c:88
override bool GetCookingTargetTemperature(out float temperature)
Определения PortableGasStove.c:220
Определения InventoryItem.c:731
Определения EnMath.c:7
Определения PPEConstants.c:68
Определения Pot.c:2
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native CGame GetGame()
const float TEMP_COEF_COOKING_DEFAULT
Определения constants.c:946
const int LIQUID_NONE
Определения constants.c:527
const int LIQUID_GASOLINE
Определения constants.c:543
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
@ NONE
No flags.
Определения EnProfiler.c:11