---@meta
---@class Barotrauma.Items.Components.Growable : Barotrauma.Items.Components.ItemComponent
---`Field Private Instance`
---@field serverHealthUpdateTimer System.Int32
---`Field Public Instance`
---@field FailedRectangles (System.Collections.Generic.HashSet*1Microsoft*Xna*Framework*Rectangle)|(Microsoft.Xna.Framework.Rectangle[])
---`Field Private Instance`
---@field accelerateDeath System.Boolean
---`Field Private Instance`
---@field health System.Single
---`Field Private Instance`
---@field flowerVariants System.Int32
---`Field Private Instance`
---@field leafVariants System.Int32
---`Field Private Instance`
---@field flowerTiles (System.Int32-arr)|(System.Int32[])
---`Field Private Instance`
---@field productDelay System.Int32
---`Field Private Instance`
---@field vineDelay System.Int32
---`Field Private Instance`
---@field fireCheckCooldown System.Single
---`Field Public Instance`
---@field ProducedItems (System.Collections.Generic.List*1Barotrauma*Items*Components*ProducedItem)|(Barotrauma.Items.Components.ProducedItem[])
---`Field Public Instance`
---@field Vines (System.Collections.Generic.List*1Barotrauma*Items*Components*VineTile)|(Barotrauma.Items.Components.VineTile[])
---`Field Private Instance`
---@field ProducedSeed Barotrauma.Items.Components.ProducedItem
---`Field Private Static`
---@field MinFlowerScale System.Single
---`Field Private Static`
---@field MaxFlowerScale System.Single
---`Field Private Static`
---@field MinLeafScale System.Single
---`Field Private Static`
---@field MaxLeafScale System.Single
---`Field Private Static`
---@field serverHealthUpdateDelay System.Int32
---`Field Private Static`
---@field increasedDeathSpeed System.Single
---`Field Private Static`
---@field maxProductDelay System.Int32
---`Field Private Static`
---@field maxVineGrowthDelay System.Int32
---`Field Private Static`
---@field VineChunkSize System.Int32
---`Getter Public Instance`
---<br/>`Setter Public Instance`
---@field GrowthSpeed System.Single
---`Getter Public Instance`
---<br/>`Setter Public Instance`
---@field MaxHealth System.Single
---`Getter Public Instance`
---<br/>`Setter Public Instance`
---@field FloodTolerance System.Single
---`Getter Public Instance`
---<br/>`Setter Public Instance`
---@field Hardiness System.Single
---`Getter Public Instance`
---<br/>`Setter Public Instance`
---@field SeedRate System.Single
---`Getter Public Instance`
---<br/>`Setter Public Instance`
---@field ProductRate System.Single
---`Getter Public Instance`
---<br/>`Setter Public Instance`
---@field MutationProbability System.Single
---`Getter Public Instance`
---<br/>`Setter Public Instance`
---@field FlowerTint Microsoft.Xna.Framework.Color
---`Getter Public Instance`
---<br/>`Setter Public Instance`
---@field FlowerQuantity System.Int32
---`Getter Public Instance`
---<br/>`Setter Public Instance`
---@field BaseFlowerScale System.Single
---`Getter Public Instance`
---<br/>`Setter Public Instance`
---@field BaseLeafScale System.Single
---`Getter Public Instance`
---<br/>`Setter Public Instance`
---@field LeafTint Microsoft.Xna.Framework.Color
---`Getter Public Instance`
---<br/>`Setter Public Instance`
---@field LeafProbability System.Single
---`Getter Public Instance`
---<br/>`Setter Public Instance`
---@field VineTint Microsoft.Xna.Framework.Color
---`Getter Public Instance`
---<br/>`Setter Public Instance`
---@field MaximumVines System.Int32
---`Getter Public Instance`
---<br/>`Setter Public Instance`
---@field VineScale System.Single
---`Getter Public Instance`
---<br/>`Setter Public Instance`
---@field DeadTint Microsoft.Xna.Framework.Color
---`Getter Public Instance`
---<br/>`Setter Public Instance`
---@field GrowthWeights Microsoft.Xna.Framework.Vector4
---`Getter Public Instance`
---<br/>`Setter Public Instance`
---@field FireVulnerability System.Single
---`Getter Public Instance`
---<br/>`Setter Public Instance`
---@field Health System.Single
---`Getter Public Instance`
---<br/>`Setter Public Instance`
---@field Decayed System.Boolean
---`Getter Public Instance`
---<br/>`Setter Public Instance`
---@field FullyGrown System.Boolean
_G['Components']['Growable'] = {}

---`Method Public Instance Virtual`
---@param msg Barotrauma.Networking.IWriteMessage
---@param c Barotrauma.Networking.Client
---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
_G['Components']['Growable'].ServerEventWrite = function(msg, c, extraData) end

---`Method Public Instance Virtual`
_G['Components']['Growable'].OnItemLoaded = function() end

---`Method Private Instance`
---@param random? System.Random
_G['Components']['Growable'].GenerateFlowerTiles = function(random) end

---`Method Private Instance`
---@param element Barotrauma.ContentXElement
_G['Components']['Growable'].LoadVines = function(element) end

---`Method Public Instance`
---@param planter Barotrauma.Items.Components.Planter
---@param slot Barotrauma.Items.Components.PlantSlot
_G['Components']['Growable'].OnGrowthTick = function(planter, slot) end

---`Method Private Instance`
_G['Components']['Growable'].UpdateBranchHealth = function() end

---`Method Private Instance`
---@param planter Barotrauma.Items.Components.Planter
---@param slot Barotrauma.Items.Components.PlantSlot
_G['Components']['Growable'].TryGenerateProduct = function(planter, slot) end

---`Method Private Instance`
---@return System.Boolean
_G['Components']['Growable'].CheckPlantState = function() end

---`Method Public Instance Virtual`
---@param deltaTime System.Single
---@param cam Barotrauma.Camera
_G['Components']['Growable'].Update = function(deltaTime, cam) end

---`Method Private Instance`
---@param deltaTime System.Single
_G['Components']['Growable'].UpdateFires = function(deltaTime) end

---`Method Private Instance`
---@param planter Barotrauma.Items.Components.Planter
---@param slot Barotrauma.Items.Components.PlantSlot
_G['Components']['Growable'].GrowVines = function(planter, slot) end

---`Method Private Instance`
_G['Components']['Growable'].GenerateStem = function() end

---`Method Private Instance`
---@param planter Barotrauma.Items.Components.Planter
---@param slot Barotrauma.Items.Components.PlantSlot
---@param random? System.Random
---@param flowerRandom? System.Random
_G['Components']['Growable'].TryGenerateBranches = function(planter, slot, random, flowerRandom) end

---`Method Private Instance`
---@param rect Microsoft.Xna.Framework.Rectangle
---@param planter Barotrauma.Items.Components.Planter
---@param slot Barotrauma.Items.Components.PlantSlot
---@return System.Boolean
_G['Components']['Growable'].CollidesWithWorld = function(rect, planter, slot) end

---`Method Public Instance Virtual`
---@param parentElement System.Xml.Linq.XElement
---@return System.Xml.Linq.XElement
_G['Components']['Growable'].Save = function(parentElement) end

---`Method Public Instance Virtual`
---@param componentElement Barotrauma.ContentXElement
---@param usePrefabValues System.Boolean
---@param idRemap Barotrauma.IdRemap
---@param isItemSwap System.Boolean
_G['Components']['Growable'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end

---`Method Private Instance`
---@return System.Boolean
_G['Components']['Growable'].CanGrowMore = function() end

---`Method Public Static`
---@param min System.Int32
---@param max System.Int32
---@param random? System.Random
---@return System.Int32
_G['Components']['Growable'].RandomInt = function(min, max, random) end

---`Method Public Static`
---@param min System.Double
---@param max System.Double
---@param random? System.Random
---@return System.Double
_G['Components']['Growable'].RandomDouble = function(min, max, random) end

---`Constructor Public Instance`
---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Growable
---@return Barotrauma.Items.Components.Growable
_G['Components']['Growable'] = function() end

---`Constructor Public Instance`
---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Growable
---@return Barotrauma.Items.Components.Growable
_G['Components']['Growable'].__new = function() end

---`Constructor Private Static`
---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Growable
---@return Barotrauma.Items.Components.Growable
_G['Components']['Growable'] = function() end

---`Constructor Private Static`
---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Growable
---@return Barotrauma.Items.Components.Growable
_G['Components']['Growable'].__new = function() end

