35 override void CreateConditionComponents()
41 override bool HasProneException()
46 override string GetText()
49 if ( player.GetLiquidTendencyDrain() )
50 return "#drain_liquid";
52 return "#pour_liquid";
59 if ( target_item && item )
61 bool can_drain = Liquid.CanTransfer(target_item,item);
62 bool can_pour = Liquid.CanTransfer(item,target_item);
64 if (can_drain && can_pour)
68 else if (!can_pour && can_drain)
70 if ( (!
GetGame().IsDedicatedServer()) && !player.GetLiquidTendencyDrain() )
72 player.SetLiquidTendencyDrain(
true);
80 else if (!can_drain && can_pour)
82 if ( (!
GetGame().IsDedicatedServer()) && player.GetLiquidTendencyDrain() )
84 player.SetLiquidTendencyDrain(
false);
96 override void OnStartClient( ActionData action_data )
98 TransferLiquidActionData.Cast(action_data).m_Tendency = action_data.m_Player.GetLiquidTendencyDrain();
101 override void OnStartServer( ActionData action_data )
103 super.OnStartServer(action_data);
105 if (!
GetGame().IsMultiplayer())
106 TransferLiquidActionData.Cast(action_data).m_Tendency = action_data.m_Player.GetLiquidTendencyDrain();
109 override ActionData CreateActionData()
111 TransferLiquidActionData action_data =
new TransferLiquidActionData;
117 super.WriteToContext(ctx, action_data);
119 ctx.Write(action_data.m_Player.GetLiquidTendencyDrain());
122 override bool ReadFromContext(
ParamsReadContext ctx, out ActionReciveData action_recive_data )
124 if(!action_recive_data)
130 super.ReadFromContext(ctx, action_recive_data);
133 if ( !ctx.Read(tendency_drain) )
135 recive_data_transfer.m_TendencyRecived = tendency_drain;
139 override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
141 super.HandleReciveData(action_recive_data, action_data);
144 TransferLiquidActionData.Cast(action_data).m_Tendency = recive_data_transfer.m_TendencyRecived;
147 override void OnStartAnimationLoop( ActionData action_data )
152 Param1<bool> play =
new Param1<bool>(
true );
153 if (TransferLiquidActionData.Cast(action_data))
155 if (TransferLiquidActionData.Cast(action_data).m_Tendency ==
true)
157 else if (!TransferLiquidActionData.Cast(action_data).m_Tendency ==
false)
163 override void OnEndAnimationLoop( ActionData action_data )
168 Param1<bool> play =
new Param1<bool>(
false );
169 if (TransferLiquidActionData.Cast(action_data).m_Tendency)