Dayz Explorer 1.29.162510
Loading...
Searching...
No Matches
actiondrinkpondcontinuous.c
Go to the documentation of this file.
2{
3 override void CreateActionComponent()
4 {
5 m_ActionData.m_ActionComponent = new CAContinuousRepeat(UATimeSpent.DRINK_POND);
6 }
7}
8
10{
11 private const float WATER_DRANK_PER_SEC = 35;
12 protected const string ALLOWED_WATER_SURFACES = string.Format("%1|%2", UAWaterType.FRESH, UAWaterType.STILL);
13
15 {
16 m_CallbackClass = ActionDrinkPondContinuousCB;
17 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_DRINKPOND;
18 m_FullBody = true;
19 m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH;
20 m_Text = "#drink";
21 }
22
23 override bool IsDrink()
24 {
25 return true;
26 }
27
28 override typename GetInputType()
29 {
31 }
32
33 override bool CanBeUsedInFreelook()
34 {
35 return false;
36 }
37
39 {
40 m_ConditionItem = new CCINone();
42 }
43
44 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
45 {
46 if (item && item.IsHeavyBehaviour())
47 return false;
48
49 return player.CanEatAndDrink();
50 }
51
52 override void OnStart(ActionData action_data)
53 {
54 super.OnStart(action_data);
55
56 action_data.m_Player.TryHideItemInHands(true);
57 }
58
59 override void OnEnd(ActionData action_data)
60 {
61 action_data.m_Player.TryHideItemInHands(false);
62 }
63
64 override void OnFinishProgressServer(ActionData action_data)
65 {
66 Param1<float> nacdata = Param1<float>.Cast(action_data.m_ActionComponent.GetACData());
67 if (nacdata)
68 {
69 EConsumeType consumeType;
70 int liquidSource = GetLiquidSource(action_data.m_Target);
71 switch (liquidSource)
72 {
74 consumeType = EConsumeType.ENVIRO_WELL;
75 break;
76
77 default:
78 consumeType = EConsumeType.ENVIRO_POND;
79 break;
80 }
81
82 PlayerConsumeData consumeData = new PlayerConsumeData();
83
84 consumeData.m_Type = consumeType;
85 consumeData.m_Amount = UAQuantityConsumed.DRINK;
86 consumeData.m_Source = null;
87 consumeData.m_Agents = action_data.m_Player.GetBloodyHandsPenaltyAgents();
88 consumeData.m_LiquidType = liquidSource;
89
90 action_data.m_Player.Consume(consumeData);
91 }
92 }
93
94 override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
95 {
96 super.WriteToContext(ctx, action_data);
97
98 if (HasTarget())
99 {
100 ctx.Write(action_data.m_Target.GetCursorHitPos());
101 return;
102 }
103
104 ctx.Write(vector.Zero);
105 }
106
107 override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
108 {
109 super.ReadFromContext(ctx, action_recive_data);
110
111 if (HasTarget())
112 {
113 vector cursorPosition;
114 if (!ctx.Read(cursorPosition))
115 return false;
116
117 action_recive_data.m_Target.SetCursorHitPos(cursorPosition);
118 }
119
120 return true;
121 }
122
123 protected int GetLiquidSource(ActionTarget target)
124 {
125 vector hitPosition = target.GetCursorHitPos();
126 string surfaceType;
127 int liquidSource;
128
129 g_Game.SurfaceGetType3D(hitPosition[0], hitPosition[1], hitPosition[2], surfaceType);
130 string path = "CfgSurfaces " + surfaceType + " liquidType";
131 liquidSource = g_Game.ConfigGetInt(path);
132
133 return liquidSource;
134 }
135}
override void OnFinishProgressServer(ActionData action_data)
override void CreateConditionComponents()
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
int m_CommandUID
Definition actionbase.c:31
int m_StanceMask
Definition actionbase.c:33
ActionBase ActionData
Definition actionbase.c:30
override bool CanBeUsedInFreelook()
int GetLiquidSource(ActionTarget target)
void ActionDrinkPondContinuous()
ActionDrinkPondContinuousCB WATER_DRANK_PER_SEC
override bool IsDrink()
const string ALLOWED_WATER_SURFACES
override bool HasTarget()
override GetInputType()
#define LIQUID_SNOW
#define LIQUID_CLEANWATER
#define LIQUID_HOTWATER
void CCTWaterSurfaceEx(float maximal_target_distance, int allowedLiquidSource)
void CreateActionComponent()
ActionData m_ActionData
DayZGame g_Game
Definition dayzgame.c:3942
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602
EConsumeType
Definition econsumetype.c:2
Serializer ParamsReadContext
Definition gameplay.c:15
Serializer ParamsWriteContext
Definition gameplay.c:16
const int LIQUID_GROUP_DRINKWATER
Definition constants.c:559
void OnEnd()
Definition sound.c:226
void ReadFromContext(ParamsReadContext ctx)
Definition hand_events.c:70
void WriteToContext(ParamsWriteContext ctx)
Definition hand_events.c:72
void OnStart(Param par=null)