DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionObtainLiquidBase.c
См. документацию.
1class ObtainLiquidActionReciveData : ActionReciveData
2{
4}
5
6class ObtainLiquidActionData : ActionData
7{
9};
10
12{
13 private int m_LiquidType;
14 private float m_BaseFillQuantity;
15
16 override void CreateActionComponent()
17 {
18 m_LiquidType = ObtainLiquidActionData.Cast(m_ActionData).m_LiquidType;
19
21 {
23 }
24 else if (m_LiquidType == LIQUID_SNOW)
25 {
27 }
28 else
29 {
31 }
33 }
34};
35
37{
38 private const float WATER_DEPTH = 0.5;
39 protected int m_AllowedLiquidMask;
40
42 {
44 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_FILLBOTTLEPOND;
45 m_FullBody = true;
46 m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
47 m_SpecialtyWeight = UASoftSkillsWeight.PRECISE_LOW;
48 m_Text = "#fill";
49
52 }
53
59
61 {
62 ObtainLiquidActionData action_data = new ObtainLiquidActionData();
63 return action_data;
64 }
65
66 override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
67 {
68 super.WriteToContext(ctx, action_data);
69 ObtainLiquidActionData actionDataOL;
70
71 if (Class.CastTo(actionDataOL, action_data))
72 ctx.Write(actionDataOL.m_LiquidType);
73 }
74
75 override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
76 {
77 if (!action_recive_data)
78 action_recive_data = new ObtainLiquidActionReciveData();
79
80 super.ReadFromContext(ctx, action_recive_data);
81 ObtainLiquidActionReciveData receiveDataOL = ObtainLiquidActionReciveData.Cast(action_recive_data);
82
83 int liquidType;
84 if (!ctx.Read(liquidType))
85 return false;
86
87 receiveDataOL.m_LiquidType = liquidType;
88 return true;
89 }
90
91 override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
92 {
93 super.HandleReciveData(action_recive_data, action_data);
94
95 ObtainLiquidActionReciveData receiveDataOL = ObtainLiquidActionReciveData.Cast(action_recive_data);
96 ObtainLiquidActionData.Cast(action_data).m_LiquidType = receiveDataOL.m_LiquidType;
97 }
98
99 override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data = null)
100 {
101 if (super.SetupAction(player, target, item, action_data, extra_data))
102 {
103 #ifndef SERVER
104 ObtainLiquidActionData actionDataOL = ObtainLiquidActionData.Cast(action_data);
105 actionDataOL.m_LiquidType = CCTLiquid.Cast(m_ConditionTarget).GetLiquidType();
106 #endif
107
108 return true;
109 }
110
111 return false;
112 }
113
114 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
115 {
117 int liquidType = CCTLiquid.Cast(m_ConditionTarget).GetLiquidType();
118 if (liquidType == LIQUID_NONE)
119 return false;
120
121 if (item.GetQuantity() > item.GetQuantityMin())
122 liquidType = Liquid.TranslateLiquidType(liquidType);
123
124 return Liquid.CanFillContainer(item, liquidType);
125 }
126
127 override bool ActionConditionContinue(ActionData action_data)
128 {
129 return action_data.m_MainItem.GetQuantity() < action_data.m_MainItem.GetQuantityMax();
130 }
131
132 override protected int GetStanceMask(PlayerBase player)
133 {
134 vector waterInfo = HumanCommandSwim.WaterLevelCheck(player, player.GetPosition());
135 if (waterInfo[1] > WATER_DEPTH)
136 {
137 return DayZPlayerConstants.STANCEMASK_ERECT;
138 }
139 else
140 {
141 return DayZPlayerConstants.STANCEMASK_CROUCH;
142 }
143 }
144
146 {
147 // Returns in format (totalWaterDepth, characterDepht, 0)
148 vector waterInfo = HumanCommandSwim.WaterLevelCheck(player, player.GetPosition());
149 if (waterInfo[1] > WATER_DEPTH)
150 {
151 m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT;
152 }
153 else
154 {
155 m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH;
156 }
157 }
158
159 override bool IsLockTargetOnUse()
160 {
161 return false;
162 }
163}
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
ObtainLiquidActionReciveData m_LiquidType
void ActionTarget(Object object, Object parent, int componentIndex, vector cursorHitPos, float utility, string surfaceName="")
Определения ActionTargets.c:125
ActionData m_ActionData
Определения AnimatedActionBase.c:3
void ActionContinuousBase()
Определения ActionContinuousBase.c:124
ItemBase m_MainItem
Определения ActionBase.c:35
Определения ActionBase.c:22
override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=null)
Определения ActionObtainLiquidBase.c:99
override ActionData CreateActionData()
Определения ActionObtainLiquidBase.c:60
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionObtainLiquidBase.c:114
override void CreateConditionComponents()
Определения ActionObtainLiquidBase.c:54
const float WATER_DEPTH
Определения ActionObtainLiquidBase.c:38
int GetStanceMask(PlayerBase player)
Определения ActionObtainLiquidBase.c:132
override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
Определения ActionObtainLiquidBase.c:66
override bool IsLockTargetOnUse()
Определения ActionObtainLiquidBase.c:159
override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
Определения ActionObtainLiquidBase.c:91
void SetupStance(PlayerBase player)
Определения ActionObtainLiquidBase.c:145
void ActionObtainLiquidBase()
Определения ActionObtainLiquidBase.c:41
override bool ActionConditionContinue(ActionData action_data)
Определения ActionObtainLiquidBase.c:127
override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
Определения ActionObtainLiquidBase.c:75
override void CreateActionComponent()
Определения ActionObtainLiquidBase.c:16
int m_CommandUID
Определения AnimatedActionBase.c:147
Определения CCINonRuined.c:2
int GetLiquidType()
Определения CCTLiquid.c:1009
Определения CCTLiquid.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Определения param.c:12
Определения PlayerBaseClient.c:2
proto bool Write(void value_out)
proto bool Read(void value_in)
const float DEFAULT
Определения ActionConstants.c:114
const float FUEL
Определения ActionConstants.c:17
const float FILL_SNOW
Определения ActionConstants.c:11
const float FILL_LIQUID
Определения ActionConstants.c:10
Определения EnConvert.c:119
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
Serializer ParamsReadContext
Определения gameplay.c:15
Serializer ParamsWriteContext
Определения gameplay.c:16
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
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_SNOW
Определения 3_Game/DayZ/constants.c:586
class HumanCommandLadder HumanCommandSwim()
Определения human.c:695