123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- class SeedPackBase extends Inventory_Base
- {
- private static const float PACK_DAMAGE_TOLERANCE = 0.5;
-
- void SeedPackBase()
- {
- }
- void EmptySeedPack(PlayerBase player)
- {
- string pack_type = GetType();
- string seeds_type = "";
-
- GetGame().ConfigGetText("cfgVehicles " + pack_type + " Horticulture ContainsSeedsType", seeds_type);
-
- int seeds_quantity_max = GetGame().ConfigGetInt("cfgVehicles " + pack_type + " Horticulture ContainsSeedsQuantity");
- int seeds_quantity = seeds_quantity_max;
-
- seeds_quantity = Math.Round(seeds_quantity_max * GetHealth01("",""));
-
- if (seeds_quantity < 1)
- {
- seeds_quantity = 1;
- }
-
- if (player)
- {
- EmptySeedsPackLambda lambda = new EmptySeedsPackLambda(this, seeds_type, player, seeds_quantity);
- player.ServerReplaceItemInHandsWithNew(lambda);
- }
- else
- {
- vector pos = GetPosition();
- GetGame().CreateObjectEx(seeds_type, pos, ECE_PLACE_ON_SURFACE);
- GetGame().ObjectDelete(this);
- }
- }
-
- override void SetActions()
- {
- super.SetActions();
-
- AddAction(ActionEmptySeedsPack);
- }
- }
- class EmptySeedsPackLambda : ReplaceItemWithNewLambdaBase
- {
- int m_ItemCount;
- PlayerBase m_Player;
-
- void EmptySeedsPackLambda(EntityAI old_item, string new_item_type, PlayerBase player, int count)
- {
- m_ItemCount = count;
- m_Player = player;
- }
- override void CopyOldPropertiesToNew(notnull EntityAI old_item, EntityAI new_item)
- {
- super.CopyOldPropertiesToNew(old_item, new_item);
- ItemBase unboxed;
- Class.CastTo(unboxed, new_item);
- unboxed.SetQuantity(m_ItemCount);
- }
-
- override void OnSuccess(EntityAI new_item)
- {
- super.OnSuccess(new_item);
-
- //spawns wrapping Paper
- if (m_Player)
- {
- m_Player.SpawnEntityOnGroundRaycastDispersed("Paper",DEFAULT_SPAWN_DISTANCE,UAItemsSpreadRadius.NARROW);
- }
- else
- {
- GetGame().CreateObjectEx("Paper", new_item.GetHierarchyRoot().GetPosition(), ECE_PLACE_ON_SURFACE);
- }
- }
- };
|