1789{
 1791 
 1799 
 1809    
 1811        
 1813    {
 1815        {
 1817            
 1819            RegisterNetSyncVariableFloat("m_FoodStage.m_CookingTime",  0, 600, 0);
 1820 
 1824            RegisterNetSyncVariableBool("m_MakeCookingSounds");
 1825        }
 1826    }
 1827    
 1829    {
 1831        
 1833    }
 1834    
 1836    {
 1837        super.EEDelete(parent);
 1838        
 1840        
 1843    }
 1844    
 1846    {
 1847        super.EEItemLocationChanged(oldLoc, newLoc);
 1848
 1851        {
 1852            switch (oldLoc.GetParent().GetType())
 1853            {
 1854                case "FryingPan":
 1855                case "Pot":
 1856                case "Cauldron":
 1857                case "SharpWoodenStick":
 1859                break;
 1860            }
 1861            
 1864            {
 1866            }
 1867        }
 1868        
 1869        if (oldLoc.IsValid())
 1871        
 1874    }
 1875 
 1877    {
 1880    }
 1881    
 1883    {
 1886 
 1887        return true;
 1888    }
 1889    
 1891    {
 1893        {
 1895        }
 1896    }
 1897    
 1900    {
 1901        int foodStageType;
 1902 
 1904        if (foodStage)
 1905            foodStageType = foodStage.GetFoodStageType();
 1906
 1911 
 1912        return agentsIn;
 1913    }
 1914    
 1915    
 1917    {
 1918        return false;
 1919    }
 1920    
 1922    {
 1923        return false;
 1924    }
 1925    
 1927    {
 1929        {
 1931            {
 1934                
 1937                
 1938                default:
 1939                    return super.GetTemperatureFreezeTime();
 1940            }
 1941        }
 1942        
 1943        return super.GetTemperatureFreezeTime();
 1944    }
 1945    
 1947    {
 1949        {
 1951            {
 1954                
 1957                
 1958                default:
 1959                    return super.GetTemperatureThawTime();
 1960            }
 1961        }
 1962        
 1963        return super.GetTemperatureThawTime();
 1964    }
 1965    
 1967    {
 1969    }
 1970    
 1971    
 1972    
 1973    
 1975    {
 1976        SetSynchDirty();
 1977    }
 1978    
 1980    {
 1981        super.OnVariablesSynchronized();
 1982        
 1983        
 1984        
 1985        
 1987        {
 1989        }
 1990        else
 1991        {
 1993        }
 1994        
 1997    }
 1998 
 1999    
 2000    
 2001    
 2003    {
 2006 
 2008    }
 2009 
 2011    {
 2012        string soundName = "";
 2013        
 2016 
 2018        {
 2020        }
 2021        else
 2022        {
 2024            {
 2026                {
 2031                    else
 2032                        soundName = "";
 2033                    break;
 2034                }
 2035                
 2037                {
 2042                    else
 2043                        soundName = "";
 2044                    break;
 2045                }
 2046                
 2048                {
 2053                    else
 2054                        soundName = "";
 2055                    break;
 2056                }
 2057                
 2058                default:
 2059                    soundName = "";
 2060                    break;
 2061            }
 2062            
 2064            {
 2065                if (soundName == "") 
 2066                {
 2068                }
 2069                else 
 2070                {
 2072                    nextStageProperties = FoodStage.GetAllCookingPropertiesForStage(nextFoodStage, null, 
GetType());
 
 2073                    float nextStageTime = nextStageProperties.Get(eCookingPropertyIndices.COOK_TIME);
 2075                    if (progress01 > Cooking.BURNING_WARNING_THRESHOLD)
 2076                    {
 2078                    }
 2079                }
 2080            }
 2081        }
 2082        
 2084    }
 2085 
 2087    {
 2090    }
 2091 
 2092    
 2093    
 2094    
 2096    {   
 2097        super.OnStoreSave(ctx);
 2098 
 2100        {
 2102        }
 2103        
 2104        
 2107    }
 2108    
 2110    {
 2111        if (!super.OnStoreLoad(ctx, version))
 2112            return false;
 2113 
 2115        {
 2117                return false;
 2118        }
 2119        
 2120        if (version >= 115)
 2121        {
 2123            {
 2125                return false;
 2126            }
 2128            {
 2130                return false;
 2131            }
 2132        }
 2133        
 2136        
 2137        return true;
 2138    }
 2139    
 2141    {   
 2142        super.AfterStoreLoad();
 2143        
 2145    }   
 2146 
 2147    
 2149    {
 2151    }
 2152    
 2153    
 2155    {
 2156        return false;
 2157    }
 2158    
 2160    {
 2161        return false;
 2162    }
 2163    
 2165    {
 2166        return false;
 2167    }
 2168    
 2170    {
 2171        return false;
 2172    }   
 2173    
 2174    
 2175    
 2176    
 2177    
 2179    {
 2182        {
 2183             return FoodStage.GetFullnessIndex(food_item.
GetFoodStage());
 
 2184        }
 2185        else if (classname != "" && food_stage)
 2186        {
 2187            return FoodStage.GetFullnessIndex(null, food_stage, classname);
 2188        }
 2189        string class_path = string.Format("cfgVehicles %1 Nutrition", classname);
 2191 
 2192    }
 2193    
 2195    {
 2198        {
 2200        }
 2201        else if (classname != "" && food_stage)
 2202        {
 2203            return FoodStage.GetEnergy(null, food_stage, classname);
 2204        }
 2205        string class_path = 
string.
Format(
"cfgVehicles %1 Nutrition", classname);
 
 2207    }
 2208    
 2210    {
 2213        {
 2215        }
 2216        else if (classname != "" && food_stage)
 2217        {
 2218            return FoodStage.GetWater(null, food_stage, classname);
 2219        }
 2220        string class_path = 
string.
Format(
"cfgVehicles %1 Nutrition", classname);
 
 2222    }
 2223    
 2225    {
 2228        {
 2229            return FoodStage.GetNutritionalIndex(food_item.
GetFoodStage()); 
 
 2230        }
 2231        else if (classname != "" && food_stage)
 2232        {
 2233            return FoodStage.GetNutritionalIndex(null, food_stage, classname);
 2234        }
 2235        string class_path = 
string.
Format(
"cfgVehicles %1 Nutrition", classname);
 
 2237        
 2238    }
 2239    
 2241    {
 2244        {
 2245            return FoodStage.GetToxicity(food_item.
GetFoodStage());
 
 2246        }
 2247        else if (classname != "" && food_stage)
 2248        {
 2249            return FoodStage.GetToxicity(null, food_stage, classname);
 2250        }
 2251        string class_path = 
string.
Format(
"cfgVehicles %1 Nutrition", classname);
 
 2253    }
 2254    
 2256    {
 2259        {
 2261        }
 2262        else if (classname != "" && food_stage)
 2263        {
 2264            return FoodStage.GetAgents(null, food_stage, classname);
 2265        }
 2266        string class_path = 
string.
Format(
"cfgVehicles %1 Nutrition", classname);
 
 2268    }
 2269    
 2271    {
 2274        {
 2275            return FoodStage.GetDigestibility(food_item.
GetFoodStage());
 
 2276        }
 2277        else if (classname != "" && food_stage)
 2278        {
 2279            return FoodStage.GetDigestibility(null, food_stage, classname);
 2280        }
 2281        string class_path = 
string.
Format(
"cfgVehicles %1 Nutrition", classname);
 
 2283    }
 2284    
 2286    {
 2289        {
 2290            return FoodStage.GetAgentsPerDigest(foodItem.
GetFoodStage());
 
 2291        }
 2292        else if (className != "" && foodStage)
 2293        {
 2294            return FoodStage.GetAgentsPerDigest(null, foodStage, className);
 2295        }
 2296        string classPath = string.Format("cfgVehicles %1 Nutrition", className);
 2298    }
 2299    
 2301    {
 2311        
 2312        return profile;
 2313    }
 2314    
 2315    
 2316    
 2317    
 2319    {
 2321    }
 2322    
 2323    
 2325    {
 2327        {
 2329        }
 2330        
 2331        return false;
 2332    }
 2333 
 2335    {
 2337        {
 2339        }
 2340        
 2341        return false;
 2342    }
 2343    
 2345    {
 2347        {
 2349        }
 2350        
 2351        return false;
 2352    }
 2353    
 2355    {
 2357        {
 2359        }
 2360        
 2361        return false;
 2362    }
 2363    
 2365    {
 2367        {
 2369        }
 2370        
 2371        return false;
 2372    }
 2373    
 2375    {
 2377        {
 2379        }
 2380        
 2381        return false;
 2382    }
 2383    
 2384    
 2386    {
 2388    }
 2389    
 2391    {
 2392        return GetFoodStage().GetNextFoodStageType( cooking_method );
 
 2393    }
 2394    
 2396    {
 2397        return GetFoodStage().GetFoodStageName( food_stage_type );
 
 2398    }
 2399    
 2401    {
 2402        return GetFoodStage().CanChangeToNewStage( cooking_method );
 
 2403    }
 2404    
 2405    
 2407    {
 2408        if ( !source.GetFoodStage())
 2409            return;
 2414    }
 2415    
 2418    {
 2421    }
 2422    
 2425    {
 2426        switch (stageNew)
 2427        {
 2432            break;
 2433            
 2436            break;
 2437        }
 2438    }
 2439    
 2440    
 2441    
 2442    
 2443    
 2445    {
 2447    }
 2448    
 2450    {
 2452        
 2453        
 2455    }
 2456    
 2458    {
 2460        {
 2463        }
 2464    }
 2465    
 2466    
 2468    {
 2470        if (player)
 2471        {
 2473            player.ServerReplaceItemInHandsWithNew(lambda);
 2474        }
 2475        else
 2476            Error(
"ReplaceEdibleWithNew - cannot use edible without player");
 
 2477    }
 2478    
 2480    {
 2482    }
 2483 
 2485    {
 2486        super.SetActions();
 2487 
 2490    }
 2491 
 2493    {
 2494        #ifndef SERVER
 2496        {
 2498 
 2501        }
 2502        #endif
 2503    }
 2504 
 2506    {
 2507        #ifndef SERVER
 2509        {
 2513        }
 2514        #endif
 2515    }
 2516    
 2518    {
 2519        return false;
 2520    }
 2521    
 2523    {
 2525    }
 2526    
 2527    override void ProcessDecay( 
float delta, 
bool hasRootAsPlayer )
 
 2528    {
 2530        
 2531        delta *= DayZGame.Cast(
GetGame()).GetFoodDecayModifier();
 
 2533        if ( hasRootAsPlayer )
 2535        
 2536        
 2537
 2538
 2539
 2540
 2541        
 2543        {
 2544            
 2546            {
 2548                {
 2552                        break;
 2553                    
 2557                        break;
 2558                    
 2562                        break;
 2563                    
 2567                    default:
 2570                        return;
 2571                }
 2572                
 2573                
 2574            }
 2575            
 2577                        
 2579            {
 2581                {
 2582                    
 2584                    {
 2586                    } 
 2588                    {
 2591                        {
 2593                        }
 2594                        else
 2595                        {
 2597                            {
 2599                            }
 2600                            else
 2601                            {
 2603                            }
 2604                        }
 2605                    }
 2606                }
 2607            }
 2608 
 2609        }
 2611        {
 2612            
 2614            {
 2616                {
 2620                        break;
 2621                    
 2625                        break;
 2626                    
 2630                        break;
 2631                    
 2635                        break;
 2636 
 2639                    default:
 2642                        return;
 2643                }
 2644            }
 2645            
 2647            
 2649            {
 2651                {
 2652                    
 2654                    {
 2656                    }
 2657                }
 2658            }
 2659        }
 2661        {
 2662            
 2664            {
 2666                {
 2670                        break;
 2671 
 2674                    default:
 2677                        return;
 2678                }
 2679            }
 2680            
 2682            
 2684            {
 2686                {
 2687                    
 2689                    {
 2691                    }
 2692                }
 2693            }
 2694        }
 2695        else
 2696        {
 2697            
 2699 
 2701            {
 2704                
 2705            }
 2706            else
 2707            {
 2709                {
 2712                }
 2713            }
 2714        }
 2715    }
 2716    
 2718    {
 2719        if (
GetGame().IsDedicatedServer())
 
 2720            return;
 2721        
 2723        {
 2725            GetInventory().GetCurrentInventoryLocation(invLoc);
 2727            {
 2729                if (ptcMgr)
 2730                {
 2735                }
 2736            }
 2737        }   
 2739        {
 2741            {
 2744                return;
 2745            }
 2746            
 2748            GetInventory().GetCurrentInventoryLocation(inventoryLoc);
 2750            {
 2753            }
 2754        }
 2755    }
 2756    
 2757    override void GetDebugActions(out TSelectableActionInfoArrayEx outputList)
 
 2758    {
 2760        {
 2765        }
 2766 
 2767        super.GetDebugActions(outputList);
 2768    }
 2769    
 2771    {
 2772        super.OnAction(action_id, player, ctx);
 2773        
 2775        {
 2776            if ( action_id == 
EActions.FOOD_STAGE_PREV )
 
 2777            {
 2779                if (food_stage_prev <= 0)
 2780                {
 2782                }
 2784                return true;
 2785            }
 2786            else if ( action_id == 
EActions.FOOD_STAGE_NEXT )
 
 2787            {
 2790                {
 2792                }
 2794                return true;
 2795            }
 2796            
 2797        }
 2798        
 2799        #ifdef DIAG_DEVELOPER
 2800        if (action_id == 
EActions.FOOD_NUTRITIONS_DATA)
 
 2801        {
 2802            PrintNutritionsData();
 2803            return true;
 2804        }
 2805        #endif
 2806 
 2807        return false;
 2808    }
 2809    
 2811    {
 2812        string debug_output;
 2813 
 2814        debug_output = super.GetDebugText();
 2815        
 2818 
 2819        return debug_output;
 2820    }
 2821 
 2822    
 2823    
 2824    
 2825    
 2827    {
 2828        float ret = super.GetBaitEffectivity();
 2829        
 2831        {
 2832            ret *= 0.5;
 2833        }
 2834        
 2835        return ret;
 2836    }
 2837    
 2839    {
 2841    }
 2842    
 2844    {
 2846    }
 2847    
 2849    {
 2851    }
 2852    
 2853    #ifdef DIAG_DEVELOPER
 2854    private void PrintNutritionsData()
 2855    {
 2856        string nutritionsData   = "";
 2857        
 2860 
 2862        if (profile)
 2863        {
 2864            nutritionsData = 
string.
Format(
"Item: %1\n\n", 
this);
 
 2866            nutritionsData += 
string.
Format(
"Energy: %1\n", profile.
m_Energy);
 
 2870            nutritionsData += 
string.
Format(
"Toxicity (obsolete): %1\n", profile.
m_Toxicity);
 
 2872 
 2875            
 2876            nutritionsData += 
string.
Format(
"Agents: %1\n", profile.
m_Agents);
 
 2878        }
 2879        
 2880        nutritionsData += "-----\n";
 2881        
 2883    }
 2884    #endif
 2885    
 2887    
 2890    {
 2892    }
 2893}
 2894 
 2896{
 2898};
Param4< int, int, string, int > TSelectableActionInfoWithColor
 
eBleedingSourceType GetType()
 
AttachActionData ActionData ActionAttach()
 
void AddAction(typename actionName)
 
DamageType
exposed from C++ (do not change)
 
AbstractWave m_SoundPlaying
 
EConsumptionPenaltyContext
 
void ReplaceEdibleWithNew(string typeName)
 
ref FoodStage m_FoodStage
 
static float GetFoodWater(ItemBase item, string classname="", int food_stage=0)
 
override bool CanBeCooked()
 
override string GetDebugText()
 
override void AfterStoreLoad()
 
void OnFoodStageChange(FoodStageType stageOld, FoodStageType stageNew)
called on server
 
override void OnVariablesSynchronized()
 
const string SOUND_BURNING_DONE
 
bool CanChangeToNewStage(CookingMethodType cooking_method)
 
override bool OnAction(int action_id, Man player, ParamsReadContext ctx)
 
override bool CanItemOverheat()
 
override float GetBaitEffectivity()
 
override FoodStage GetFoodStage()
 
override void SetActions()
 
override float GetTemperatureFreezeTime()
 
const string DIRECT_COOKING_SLOT_NAME
 
FoodStageType GetNextFoodStageType(CookingMethodType cooking_method)
 
void ChangeFoodStage(FoodStageType new_food_stage_type)
 
void OnConsume(float amount, PlayerBase consumer)
 
static float GetFoodNutritionalIndex(ItemBase item, string classname="", int food_stage=0)
 
SoundOnVehicle m_SoundCooking
 
static float GetFoodToxicity(ItemBase item, string classname="", int food_stage=0)
 
void UpdateVisualsEx(bool forced=false)
 
const string SOUND_BAKING_DONE
 
static NutritionalProfile GetNutritionalProfile(ItemBase item, string classname="", int food_stage=0)
 
int FilterAgents(int agentsIn)
Filter agents from the item (override on higher implementations)
 
override void EEDelete(EntityAI parent)
 
FoodStageType m_LastDecayStage
 
override bool CanBeCookedOnStick()
 
FoodStageType GetLastDecayStage()
 
string GetFoodStageName(FoodStageType food_stage_type)
 
override float GetTemperatureThawTime()
 
void UpdateVaporParticle()
 
static float GetFoodDigestibility(ItemBase item, string classname="", int food_stage=0)
 
void TransferFoodStage(notnull Edible_Base source)
 
override void ProcessDecay(float delta, bool hasRootAsPlayer)
 
const string SOUND_DRYING_START
 
void SetCookingTime(float time)
 
void SoundCookingStart(string sound_name)
 
const string SOUND_BAKING_START
 
static float GetFoodTotalVolume(ItemBase item, string classname="", int food_stage=0)
 
const string SOUND_DRYING_DONE
 
void HandleFoodStageChangeAgents(FoodStageType stageOld, FoodStageType stageNew)
removes select agents on foodstage transitions
 
Edible_Base ItemBase ReplaceEdibleWithNewLambda(EntityAI old_item, string new_item_type, PlayerBase player)
 
bool Consume(float amount, PlayerBase consumer)
 
EffectSound m_SoundEffectCooking
DEPRECATED.
 
override bool OnStoreLoad(ParamsReadContext ctx, int version)
 
FoodStageType GetFoodStageType()
 
override bool CanProcessDecay()
 
ParticleSource m_HotVaporParticle
 
void MakeSoundsOnClient(bool soundstate, CookingMethodType cookingMethod=CookingMethodType.NONE)
 
static int GetFoodAgents(ItemBase item, string classname="", int food_stage=0)
 
override bool IsMushroom()
 
static float GetFoodEnergy(ItemBase item, string classname="", int food_stage=0)
 
static float GetAgentsPerDigest(ItemBase item, string className="", int foodStage=0)
 
const string SOUND_BOILING_DONE
 
int GetConsumptionPenaltyContext()
 
const string SOUND_BOILING_START
 
override void GetDebugActions(out TSelectableActionInfoArrayEx outputList)
 
CookingMethodType m_CookedByMethod
 
override void EEItemLocationChanged(notnull InventoryLocation oldLoc, notnull InventoryLocation newLoc)
 
override void OnStoreSave(ParamsWriteContext ctx)
 
override bool CanHaveTemperature()
 
InventoryLocationType
types of Inventory Location
 
override void InsertAgent(int agent, float count=1)
 
override void RemoveAllAgentsExcept(int agent_to_keep)
 
bool AddQuantity(float value, bool destroy_config=true, bool destroy_forced=false)
add item quantity[related to varQuantity... config entry], destroy_config = true > if the quantity re...
 
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)
 
ParticleAutoDestroyFlags
Flags to pass to ParticleSource.SetParticleAutoDestroyFlags.
 
proto native float ConfigGetFloat(string path)
Get float value from config on path.
 
proto native int ConfigGetInt(string path)
Get int value from config on path.
 
static void Log(string message=LOG_DEFAULT, string plugin=LOG_DEFAULT, string author=LOG_DEFAULT, string label=LOG_DEFAULT, string entity=LOG_DEFAULT)
Prints debug message with normal prio.
 
override FoodStage GetFoodStage()
 
Wrapper class for managing sound through SEffectManager.
 
proto native int GetType()
returns type of InventoryLocation
 
static proto native owned string GetSlotName(int id)
converts slot_id to string
 
provides access to slot configuration
 
static const int ITEM_HOT_VAPOR
 
Entity which has the particle instance as an ObjectComponent.
 
static const float CONSUMPTION_DAMAGE_PER_BITE
 
static const float CONSUMPTION_DAMAGE_TEMP_THRESHOLD
 
static EffectSound PlaySound(string sound_set, vector position, float play_fade_in=0, float stop_fade_out=0, bool loop=false)
Create and play an EffectSound.
 
Manager class for managing Effect (EffectParticle, EffectSound)
 
proto bool Write(void value_out)
 
proto bool Read(void value_in)
 
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
 
Serializer ParamsReadContext
 
proto native CGame GetGame()
 
Serializer ParamsWriteContext
 
void Error(string err)
Messagebox with error message.
 
const float DECAY_FOOD_BAKED_FRVG
 
const float DECAY_FOOD_CAN_OPEN
 
const float DECAY_FOOD_RAW_FRVG
 
const int DECAY_TIMER_RANDOM_PERCENTAGE
 
const int DECAY_FOOD_FRVG_DRIED_CHANCE
 
const float DECAY_FOOD_RAW_MEAT
 
const float DECAY_FOOD_BAKED_MEAT
 
const float DECAY_FOOD_BOILED_MEAT
 
const float DECAY_FOOD_BOILED_FRVG
 
const float DECAY_FOOD_DRIED_MEAT
 
const float DECAY_FOOD_RAW_CORPSE
 
const float DECAY_RATE_ON_PLAYER
 
static const float TEMPERATURE_THAW_TIME_COEF_BURNED
 
static const float TEMPERATURE_FREEZE_TIME_COEF_BURNED
 
static const float TEMPERATURE_THAW_TIME_COEF_DRIED
 
static const float TEMPERATURE_FREEZE_TIME_COEF_DRIED
 
const int STATE_HOT_LVL_TWO
 
static float RandomFloat01()
Returns a random float number between and min [inclusive] and max [inclusive].
 
static int RandomIntInclusive(int min, int max)
Returns a random int number between and min [inclusive] and max [inclusive].
 
const int SAT_DEBUG_ACTION
 
class JsonUndergroundAreaTriggerData GetPosition
 
bool Contains(string sample)
Returns true if sample is substring of string.
 
static proto string Format(string fmt, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL)
Gets n-th character from string.