1696{
 1698 
 1706 
 1716    
 1718        
 1720    {
 1722        {
 1724            
 1726            RegisterNetSyncVariableFloat("m_FoodStage.m_CookingTime",  0, 600, 0);
 1727 
 1731            RegisterNetSyncVariableBool("m_MakeCookingSounds");
 1732        }
 1733    }
 1734    
 1736    {
 1738        
 1740    }
 1741    
 1743    {
 1744        super.EEDelete(parent);
 1745        
 1747        
 1750    }
 1751    
 1753    {
 1754        super.EEItemLocationChanged(oldLoc, newLoc);
 1755
 1758        {
 1759            switch (oldLoc.GetParent().GetType())
 1760            {
 1761                case "FryingPan":
 1762                case "Pot":
 1763                case "Cauldron":
 1764                case "SharpWoodenStick":
 1766                break;
 1767            }
 1768            
 1771            {
 1773            }
 1774        }
 1775        
 1776        if (oldLoc.IsValid())
 1778        
 1781    }
 1782 
 1784    {
 1787    }
 1788    
 1790    {
 1793 
 1794        return true;
 1795    }
 1796    
 1798    {
 1800        {
 1802        }
 1803    }
 1804    
 1807    {
 1808        int foodStageType;
 1809 
 1811        if (foodStage)
 1812            foodStageType = foodStage.GetFoodStageType();
 1813
 1818 
 1819        return agentsIn;
 1820    }
 1821    
 1822    
 1824    {
 1825        return false;
 1826    }
 1827    
 1829    {
 1830        return false;
 1831    }
 1832    
 1834    {
 1836        {
 1838            {
 1841                
 1844                
 1845                default:
 1846                    return super.GetTemperatureFreezeTime();
 1847            }
 1848        }
 1849        
 1850        return super.GetTemperatureFreezeTime();
 1851    }
 1852    
 1854    {
 1856        {
 1858            {
 1861                
 1864                
 1865                default:
 1866                    return super.GetTemperatureThawTime();
 1867            }
 1868        }
 1869        
 1870        return super.GetTemperatureThawTime();
 1871    }
 1872    
 1874    {
 1876    }
 1877    
 1878    
 1879    
 1880    
 1882    {
 1883        SetSynchDirty();
 1884    }
 1885    
 1887    {
 1888        super.OnVariablesSynchronized();
 1889        
 1890        
 1891        
 1892        
 1894        {
 1896        }
 1897        else
 1898        {
 1900        }
 1901        
 1904    }
 1905 
 1906    
 1907    
 1908    
 1910    {
 1913 
 1915    }
 1916 
 1918    {
 1919        string soundName = "";
 1920        
 1923 
 1925        {
 1927        }
 1928        else
 1929        {
 1931            {
 1933                {
 1938                    else
 1939                        soundName = "";
 1940                    break;
 1941                }
 1942                
 1944                {
 1949                    else
 1950                        soundName = "";
 1951                    break;
 1952                }
 1953                
 1955                {
 1960                    else
 1961                        soundName = "";
 1962                    break;
 1963                }
 1964                
 1965                default:
 1966                    soundName = "";
 1967                    break;
 1968            }
 1969            
 1971            {
 1972                if (soundName == "") 
 1973                {
 1975                }
 1976                else 
 1977                {
 1979                    nextStageProperties = FoodStage.GetAllCookingPropertiesForStage(nextFoodStage, null, 
GetType());
 
 1980                    float nextStageTime = nextStageProperties.Get(eCookingPropertyIndices.COOK_TIME);
 1982                    if (progress01 > Cooking.BURNING_WARNING_THRESHOLD)
 1983                    {
 1985                    }
 1986                }
 1987            }
 1988        }
 1989        
 1991    }
 1992 
 1994    {
 1997    }
 1998 
 1999    
 2000    
 2001    
 2003    {   
 2004        super.OnStoreSave(ctx);
 2005 
 2007        {
 2009        }
 2010        
 2011        
 2014    }
 2015    
 2017    {
 2018        if (!super.OnStoreLoad(ctx, version))
 2019            return false;
 2020 
 2022        {
 2024                return false;
 2025        }
 2026        
 2027        if (version >= 115)
 2028        {
 2030            {
 2032                return false;
 2033            }
 2035            {
 2037                return false;
 2038            }
 2039        }
 2040        
 2043        
 2044        return true;
 2045    }
 2046    
 2048    {   
 2049        super.AfterStoreLoad();
 2050        
 2052    }   
 2053 
 2054    
 2056    {
 2058    }
 2059    
 2060    
 2062    {
 2063        return false;
 2064    }
 2065    
 2067    {
 2068        return false;
 2069    }
 2070    
 2072    {
 2073        return false;
 2074    }
 2075    
 2077    {
 2078        return false;
 2079    }   
 2080    
 2081    
 2082    
 2083    
 2084    
 2086    {
 2089        {
 2090             return FoodStage.GetFullnessIndex(food_item.
GetFoodStage());
 
 2091        }
 2092        else if (classname != "" && food_stage)
 2093        {
 2094            return FoodStage.GetFullnessIndex(null, food_stage, classname);
 2095        }
 2096        string class_path = string.Format("cfgVehicles %1 Nutrition", classname);
 2098 
 2099    }
 2100    
 2102    {
 2105        {
 2107        }
 2108        else if (classname != "" && food_stage)
 2109        {
 2110            return FoodStage.GetEnergy(null, food_stage, classname);
 2111        }
 2112        string class_path = 
string.
Format(
"cfgVehicles %1 Nutrition", classname);
 
 2114    }
 2115    
 2117    {
 2120        {
 2122        }
 2123        else if (classname != "" && food_stage)
 2124        {
 2125            return FoodStage.GetWater(null, food_stage, classname);
 2126        }
 2127        string class_path = 
string.
Format(
"cfgVehicles %1 Nutrition", classname);
 
 2129    }
 2130    
 2132    {
 2135        {
 2136            return FoodStage.GetNutritionalIndex(food_item.
GetFoodStage()); 
 
 2137        }
 2138        else if (classname != "" && food_stage)
 2139        {
 2140            return FoodStage.GetNutritionalIndex(null, food_stage, classname);
 2141        }
 2142        string class_path = 
string.
Format(
"cfgVehicles %1 Nutrition", classname);
 
 2144        
 2145    }
 2146    
 2148    {
 2151        {
 2152            return FoodStage.GetToxicity(food_item.
GetFoodStage());
 
 2153        }
 2154        else if (classname != "" && food_stage)
 2155        {
 2156            return FoodStage.GetToxicity(null, food_stage, classname);
 2157        }
 2158        string class_path = 
string.
Format(
"cfgVehicles %1 Nutrition", classname);
 
 2160    }
 2161    
 2163    {
 2166        {
 2168        }
 2169        else if (classname != "" && food_stage)
 2170        {
 2171            return FoodStage.GetAgents(null, food_stage, classname);
 2172        }
 2173        string class_path = 
string.
Format(
"cfgVehicles %1 Nutrition", classname);
 
 2175    }
 2176    
 2178    {
 2181        {
 2182            return FoodStage.GetDigestibility(food_item.
GetFoodStage());
 
 2183        }
 2184        else if (classname != "" && food_stage)
 2185        {
 2186            return FoodStage.GetDigestibility(null, food_stage, classname);
 2187        }
 2188        string class_path = 
string.
Format(
"cfgVehicles %1 Nutrition", classname);
 
 2190    }
 2191    
 2193    {
 2196        {
 2197            return FoodStage.GetAgentsPerDigest(foodItem.
GetFoodStage());
 
 2198        }
 2199        else if (className != "" && foodStage)
 2200        {
 2201            return FoodStage.GetAgentsPerDigest(null, foodStage, className);
 2202        }
 2203        string classPath = string.Format("cfgVehicles %1 Nutrition", className);
 2205    }
 2206    
 2208    {
 2218        
 2219        return profile;
 2220    }
 2221    
 2222    
 2223    
 2224    
 2226    {
 2228    }
 2229    
 2230    
 2232    {
 2234        {
 2236        }
 2237        
 2238        return false;
 2239    }
 2240 
 2242    {
 2244        {
 2246        }
 2247        
 2248        return false;
 2249    }
 2250    
 2252    {
 2254        {
 2256        }
 2257        
 2258        return false;
 2259    }
 2260    
 2262    {
 2264        {
 2266        }
 2267        
 2268        return false;
 2269    }
 2270    
 2272    {
 2274        {
 2276        }
 2277        
 2278        return false;
 2279    }
 2280    
 2282    {
 2284        {
 2286        }
 2287        
 2288        return false;
 2289    }
 2290    
 2291    
 2293    {
 2295    }
 2296    
 2298    {
 2299        return GetFoodStage().GetNextFoodStageType( cooking_method );
 
 2300    }
 2301    
 2303    {
 2304        return GetFoodStage().GetFoodStageName( food_stage_type );
 
 2305    }
 2306    
 2308    {
 2309        return GetFoodStage().CanChangeToNewStage( cooking_method );
 
 2310    }
 2311    
 2312    
 2314    {
 2315        if ( !source.GetFoodStage())
 2316            return;
 2321    }
 2322    
 2325    {
 2328    }
 2329    
 2332    {
 2333        switch (stageNew)
 2334        {
 2339            break;
 2340            
 2343            break;
 2344        }
 2345    }
 2346    
 2347    
 2348    
 2349    
 2350    
 2352    {
 2354    }
 2355    
 2357    {
 2359        
 2360        
 2362    }
 2363    
 2365    {
 2367        {
 2370        }
 2371    }
 2372    
 2373    
 2375    {
 2377        if (player)
 2378        {
 2380            player.ServerReplaceItemInHandsWithNew(lambda);
 2381        }
 2382        else
 2383            Error(
"ReplaceEdibleWithNew - cannot use edible without player");
 
 2384    }
 2385    
 2387    {
 2389    }
 2390 
 2392    {
 2393        super.SetActions();
 2394 
 2397    }
 2398 
 2400    {
 2401        #ifndef SERVER
 2403        {
 2405 
 2408        }
 2409        #endif
 2410    }
 2411 
 2413    {
 2414        #ifndef SERVER
 2416        {
 2420        }
 2421        #endif
 2422    }
 2423    
 2425    {
 2426        return false;
 2427    }
 2428    
 2430    {
 2432    }
 2433    
 2434    override void ProcessDecay( 
float delta, 
bool hasRootAsPlayer )
 
 2435    {
 2437        
 2438        delta *= DayZGame.Cast(
GetGame()).GetFoodDecayModifier();
 
 2440        if ( hasRootAsPlayer )
 2442        
 2443        
 2444
 2445
 2446
 2447
 2448        
 2450        {
 2451            
 2453            {
 2455                {
 2459                        break;
 2460                    
 2464                        break;
 2465                    
 2469                        break;
 2470                    
 2474                    default:
 2477                        return;
 2478                }
 2479                
 2480                
 2481            }
 2482            
 2484                        
 2486            {
 2488                {
 2489                    
 2491                    {
 2493                    } 
 2495                    {
 2498                        {
 2500                        }
 2501                        else
 2502                        {
 2504                            {
 2506                            }
 2507                            else
 2508                            {
 2510                            }
 2511                        }
 2512                    }
 2513                }
 2514            }
 2515 
 2516        }
 2518        {
 2519            
 2521            {
 2523                {
 2527                        break;
 2528                    
 2532                        break;
 2533                    
 2537                        break;
 2538                    
 2542                        break;
 2543 
 2546                    default:
 2549                        return;
 2550                }
 2551            }
 2552            
 2554            
 2556            {
 2558                {
 2559                    
 2561                    {
 2563                    }
 2564                }
 2565            }
 2566        }
 2568        {
 2569            
 2571            {
 2573                {
 2577                        break;
 2578 
 2581                    default:
 2584                        return;
 2585                }
 2586            }
 2587            
 2589            
 2591            {
 2593                {
 2594                    
 2596                    {
 2598                    }
 2599                }
 2600            }
 2601        }
 2602        else
 2603        {
 2604            
 2606 
 2608            {
 2611                
 2612            }
 2613            else
 2614            {
 2616                {
 2619                }
 2620            }
 2621        }
 2622    }
 2623    
 2625    {
 2626        if (
GetGame().IsDedicatedServer())
 
 2627            return;
 2628        
 2630        {
 2632            GetInventory().GetCurrentInventoryLocation(invLoc);
 2634            {
 2636                if (ptcMgr)
 2637                {
 2642                }
 2643            }
 2644        }   
 2646        {
 2648            {
 2651                return;
 2652            }
 2653            
 2655            GetInventory().GetCurrentInventoryLocation(inventoryLoc);
 2657            {
 2660            }
 2661        }
 2662    }
 2663    
 2664    override void GetDebugActions(out TSelectableActionInfoArrayEx outputList)
 
 2665    {
 2667        {
 2672        }
 2673 
 2674        super.GetDebugActions(outputList);
 2675    }
 2676    
 2678    {
 2679        super.OnAction(action_id, player, ctx);
 2680        
 2682        {
 2683            if ( action_id == 
EActions.FOOD_STAGE_PREV )
 
 2684            {
 2686                if (food_stage_prev <= 0)
 2687                {
 2689                }
 2691                return true;
 2692            }
 2693            else if ( action_id == 
EActions.FOOD_STAGE_NEXT )
 
 2694            {
 2697                {
 2699                }
 2701                return true;
 2702            }
 2703            
 2704        }
 2705        
 2706        #ifdef DIAG_DEVELOPER
 2707        if (action_id == 
EActions.FOOD_NUTRITIONS_DATA)
 
 2708        {
 2709            PrintNutritionsData();
 2710            return true;
 2711        }
 2712        #endif
 2713 
 2714        return false;
 2715    }
 2716    
 2718    {
 2719        string debug_output;
 2720 
 2721        debug_output = super.GetDebugText();
 2722        
 2725 
 2726        return debug_output;
 2727    }
 2728 
 2729    
 2730    
 2731    
 2732    
 2734    {
 2735        float ret = super.GetBaitEffectivity();
 2736        
 2738        {
 2739            ret *= 0.5;
 2740        }
 2741        
 2742        return ret;
 2743    }
 2744    
 2746    {
 2748    }
 2749    
 2751    {
 2753    }
 2754    
 2756    {
 2758    }
 2759    
 2760    #ifdef DIAG_DEVELOPER
 2761    private void PrintNutritionsData()
 2762    {
 2763        string nutritionsData   = "";
 2764        
 2767 
 2769        if (profile)
 2770        {
 2771            nutritionsData = 
string.
Format(
"Item: %1\n\n", 
this);
 
 2773            nutritionsData += 
string.
Format(
"Energy: %1\n", profile.
m_Energy);
 
 2777            nutritionsData += 
string.
Format(
"Toxicity (obsolete): %1\n", profile.
m_Toxicity);
 
 2779 
 2782            
 2783            nutritionsData += 
string.
Format(
"Agents: %1\n", profile.
m_Agents);
 
 2785        }
 2786        
 2787        nutritionsData += "-----\n";
 2788        
 2790    }
 2791    #endif
 2792    
 2794    
 2797    {
 2799    }
 2800}
 2801 
 2803{
 2805};
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.