creation method using raycast-dispersed positioning; ECE_TRACE not used as a result
545 {
547 float max_stack_size;
549
551 max_stack_size =
g_Game.ConfigGetInt(
"cfgVehicles " + item_name +
" varStackMax");
552 if( max_stack_size < 1)
553 max_stack_size =
g_Game.ConfigGetInt(
"cfgVehicles " + item_name +
" varQuantityMax");
554 if( max_stack_size < 1)
555 max_stack_size = 1;
556
557 int full_piles_count =
Math.
Floor(quantity/max_stack_size);
558 int rest = quantity - (full_piles_count*max_stack_size);
560
561 for (int i = 0; i < full_piles_count; ++i)
562 {
563 randomizedPos = MiscGameplayFunctions.GetRandomizedPositionVerified(starPos,targetPos,radius,ignoreObjectCollison);
566 pile.SetHealth(health);
567 item_piles.Insert(pile);
568 }
569
570 if (rest > 0)
571 {
572 randomizedPos = MiscGameplayFunctions.GetRandomizedPositionVerified(starPos,targetPos,radius,ignoreObjectCollison);
575 pile.SetHealth(health);
576 item_piles.Insert(pile);
577 }
578 return item_piles;
579 }
const int ECE_PLACE_ON_SURFACE
override bool SetQuantity(float value, bool destroy_config=true, bool destroy_forced=false, bool allow_client=false, bool clamp_to_stack_max=true)
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
static proto float Floor(float f)
Returns floor of value.