DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionFillBottleBase.c
См. документацию.
1
2[Obsolete("1.30: replaced by ActionObtainLiquidBaseCB")]
27
28[Obsolete("1.30: replaced by class ActionObtainLiquidBase")]
30{
31 private const float WATER_DEPTH = 0.5;
32 protected int m_AllowedLiquidMask;
33
35 {
37 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_FILLBOTTLEPOND;
38 m_FullBody = true;
39 m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
40 m_SpecialtyWeight = UASoftSkillsWeight.PRECISE_LOW;
41 m_Text = "#fill";
42
45 }
46
48 {
51 }
52
53 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
54 {
55 Object targetObject = target.GetObject();
56 if (targetObject)
57 {
58 if (vector.DistanceSq(player.GetPosition(), target.GetCursorHitPos()) > UAMaxDistances.DEFAULT * UAMaxDistances.DEFAULT)
59 return false;
60
61 TIntArray componentIndices = new TIntArray();
62 targetObject.GetActionComponentsForSelectionName(targetObject.GetViewGeometryLevel(), UAMisc.LIQUID_SOURCE_SELECTION, componentIndices);
63 if (componentIndices.Count() > 0 && componentIndices.Find(target.GetComponentIndex()) == -1)
64 return false;
65 }
66 else
67 {
69 if (!waterCheck.Can(player, target))
70 return false;
71 }
72
73 int liquidType = GetLiquidType(player, target, item);
74
75 if (item.GetQuantity() > item.GetQuantityMin())
76 liquidType = Liquid.TranslateLiquidType(liquidType);
77
78 return liquidType != LIQUID_NONE && Liquid.CanFillContainer(item,liquidType);
79 }
80
81 override bool ActionConditionContinue(ActionData action_data)
82 {
83 return action_data.m_MainItem.GetQuantity() < action_data.m_MainItem.GetQuantityMax();
84 }
85
86 override protected int GetStanceMask(PlayerBase player)
87 {
88 vector water_info = HumanCommandSwim.WaterLevelCheck(player, player.GetPosition());
89 if (water_info[1] > WATER_DEPTH)
90 {
91 return DayZPlayerConstants.STANCEMASK_ERECT;
92 }
93 else
94 {
95 return DayZPlayerConstants.STANCEMASK_CROUCH;
96 }
97 }
98
99 override protected int GetActionCommandEx(ActionData actionData)
100 {
101 int commandUID = DayZPlayerConstants.CMD_ACTIONFB_FILLBOTTLEPOND;
102 if (actionData.m_Target.GetObject())
103 {
104 commandUID = DayZPlayerConstants.CMD_ACTIONFB_FILLBOTTLEWELL;
105 }
106
107 return commandUID;
108 }
109
111 {
112 int liquidType = LIQUID_NONE;
113 if ( target.GetObject() )
114 {
115 liquidType = target.GetObject().GetLiquidSourceType();
116 }
117 else
118 {
119 string surfaceType;
120 vector hit_pos = target.GetCursorHitPos();
121 g_Game.SurfaceGetType3D(hit_pos[0], hit_pos[1], hit_pos[2], surfaceType);
122 if (surfaceType == "")
123 {
124 if ( hit_pos[1] <= g_Game.SurfaceGetSeaLevel() + 0.001 )
125 {
126 liquidType = LIQUID_SALTWATER;
127 }
128 }
129 else
130 {
131 liquidType = SurfaceInfo.GetByName(surfaceType).GetLiquidType();
132 }
133 }
134
135 return liquidType & m_AllowedLiquidMask;
136 }
137
139 {
140 //returns in format (totalWaterDepth, characterDepht, 0)
141 vector water_info = HumanCommandSwim.WaterLevelCheck(player, player.GetPosition());
142 if (water_info[1] > WATER_DEPTH)
143 {
144 m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT;
145 }
146 else
147 {
148 m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH;
149 }
150 }
151
152 override bool IsLockTargetOnUse()
153 {
154 return false;
155 }
156
157 // deprecated
158 private const int ALLOWED_LIQUID;
159 private const string ALLOWED_WATER_SURFACES = string.Format("%1|%2|%3", UAWaterType.FRESH, UAWaterType.STILL, UAWaterType.SNOW);
160}
bool m_FullBody
Определения ActionBase.c:60
string m_Text
Определения ActionBase.c:57
ref CCIBase m_ConditionItem
Определения ActionBase.c:63
float m_SpecialtyWeight
Определения ActionBase.c:77
ref CCTBase m_ConditionTarget
Определения ActionBase.c:64
int m_StanceMask
Определения ActionBase.c:61
void ActionTarget(Object object, Object parent, int componentIndex, vector cursorHitPos, float utility, string surfaceName="")
Определения ActionTargets.c:125
DayZGame g_Game
Определения DayZGame.c:4074
override int GetLiquidType()
Определения ItemBase.c:3883
ActionData m_ActionData
Определения AnimatedActionBase.c:3
void ActionContinuousBase()
Определения ActionContinuousBase.c:124
ref ActionTarget m_Target
Определения ActionBase.c:39
ItemBase m_MainItem
Определения ActionBase.c:35
Определения ActionBase.c:22
override bool ActionConditionContinue(ActionData action_data)
Определения ActionFillBottleBase.c:81
int GetLiquidType(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionFillBottleBase.c:110
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionFillBottleBase.c:53
int GetActionCommandEx(ActionData actionData)
Определения ActionFillBottleBase.c:99
const string ALLOWED_WATER_SURFACES
Определения ActionFillBottleBase.c:159
int m_AllowedLiquidMask
Определения ActionFillBottleBase.c:32
const float WATER_DEPTH
Определения ActionFillBottleBase.c:31
void ActionFillBottleBase()
Определения ActionFillBottleBase.c:34
int GetStanceMask(PlayerBase player)
Определения ActionFillBottleBase.c:86
void SetupStance(PlayerBase player)
Определения ActionFillBottleBase.c:138
const int ALLOWED_LIQUID
Определения ActionFillBottleBase.c:158
override bool IsLockTargetOnUse()
Определения ActionFillBottleBase.c:152
override void CreateConditionComponents()
Определения ActionFillBottleBase.c:47
float m_BaseFillQuantity
Определения ActionFillBottleBase.c:6
override void CreateActionComponent()
Определения ActionFillBottleBase.c:8
DEPRECATED.
Определения ActionFillBottleBase.c:4
int m_CommandUID
Определения AnimatedActionBase.c:147
Определения CCINonRuined.c:2
override bool Can(PlayerBase player, ActionTarget target)
Определения CCTLiquid.c:66
Определения CCTLiquid.c:2
Определения CCTNone.c:2
Определения ObjectTyped.c:2
Определения PlayerBaseClient.c:2
proto int GetLiquidType()
See 'LiquidTypes' in 'constants.c'.
static proto SurfaceInfo GetByName(string name)
Определения SurfaceInfo.c:9
const float DEFAULT
Определения ActionConstants.c:114
const string LIQUID_SOURCE_SELECTION
Определения ActionConstants.c:180
Определения ActionConstants.c:176
const float FUEL
Определения ActionConstants.c:17
const float FILL_SNOW
Определения ActionConstants.c:11
const float FILL_LIQUID
Определения ActionConstants.c:10
const string FRESH
fake
Определения ActionConstants.c:166
const string STILL
Определения ActionConstants.c:167
const string SNOW
Определения ActionConstants.c:168
Определения ActionConstants.c:164
static proto native float DistanceSq(vector v1, vector v2)
Returns the square distance between tips of two 3D vectors.
Определения EnConvert.c:119
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
array< int > TIntArray
Определения EnScript.c:733
void Obsolete(string msg="")
Определения EnScript.c:371
const int LIQUID_NONE
Определения 3_Game/DayZ/constants.c:566
const int LIQUID_GROUP_DRINKWATER
Определения 3_Game/DayZ/constants.c:593
const int LIQUID_GASOLINE
Определения 3_Game/DayZ/constants.c:582
const int LIQUID_SALTWATER
Определения 3_Game/DayZ/constants.c:587
const int LIQUID_SNOW
Определения 3_Game/DayZ/constants.c:586
class HumanCommandLadder HumanCommandSwim()
Определения human.c:695