48 ActionData action_data =
new WorldCraftActionData;
60 PluginRecipesManager module_recipes_manager;
62 m_Text = module_recipes_manager.GetRecipeName( player.GetCraftingManager().GetRecipeID(
m_VariantID) );
70 PluginRecipesManager moduleRecipesManager;
72 return moduleRecipesManager.GetRecipeName( player.GetCraftingManager().GetRecipeID(
m_VariantID) );
75 return "Default worldcraft text";
82 if (!target.GetObject() || !item)
93 if (!action_data.m_Target.GetObject() || !action_data.m_MainItem)
96 PluginRecipesManager moduleRecipesManager;
99 WorldCraftActionData action_data_wc = WorldCraftActionData.Cast(action_data);
102 Class.
CastTo(item2, action_data_wc.m_Target.GetObject());
103 if(!moduleRecipesManager.IsRecipePossibleToPerform(action_data_wc.m_RecipeID, action_data.m_MainItem, item2, action_data.m_Player))
114 WorldCraftActionData actionDataWorldCraft = WorldCraftActionData.Cast(action_data);
117 ItemBase item = actionDataWorldCraft.m_MainItem;
119 PluginRecipesManager recipesManager = PluginRecipesManager.Cast(
GetPlugin(PluginRecipesManager));
121 string soundCat = recipesManager.GetSoundCategory(actionDataWorldCraft.m_RecipeID,target, item);
128 if (super.SetupAction(player, target, item, action_data, extra_data ))
130 WorldCraftActionData action_data_wc = WorldCraftActionData.Cast(action_data);
132 if (!
g_Game.IsDedicatedServer())
133 action_data_wc.m_RecipeID = player.GetCraftingManager().GetRecipeID(
m_VariantID);
135 PluginRecipesManager moduleRecipesManager;
138 RecipeAnimationInfo recipeAnimationInfo = moduleRecipesManager.GetRecipeAnimationInfo(action_data_wc.m_RecipeID, player, action_data_wc.m_MainItem,
ItemBase.Cast(action_data_wc.m_Target.GetObject()));
140 action_data_wc.m_AnimationID = recipeAnimationInfo.
m_AnimationUID;
141 action_data_wc.m_ShowItem = recipeAnimationInfo.
m_ItemVisible;
152 super.Start(action_data);
153 WorldCraftActionData action_data_wc = WorldCraftActionData.Cast(action_data);
154 if ( action_data_wc.m_Player && !action_data_wc.m_ShowItem )
155 action_data.m_Player.TryHideItemInHands(
true);
160 if ( action_data.m_Player ) action_data.m_Player.TryHideItemInHands(
false);
162 super.OnEndServer(action_data);
167 if ( action_data.m_Player ) action_data.m_Player.TryHideItemInHands(
false);
172 WorldCraftActionData action_data_wc;
173 PluginRecipesManager module_recipes_manager;
178 Class.
CastTo(item2, action_data.m_Target.GetObject());
180 if (action_data.m_MainItem && item2)
182 if (
g_Game.IsMultiplayer())
187 module_recipes_manager.PerformRecipeServer(action_data_wc.m_RecipeID, action_data.m_MainItem, item2, action_data.m_Player);
189 if (
g_Game.IsMultiplayer())
198 super.WriteToContext(ctx, action_data);
200 WorldCraftActionData action_data_wc = WorldCraftActionData.Cast(action_data);
202 ctx.
Write(action_data_wc.m_RecipeID);
207 if (!action_recive_data)
212 super.ReadFromContext(ctx, action_recive_data);
215 if (!ctx.
Read(recipeID))
228 WorldCraftActionData action_data_wc = WorldCraftActionData.Cast(action_data);
230 action_data_wc.m_MainItem = recive_data_wc.m_MainItem;
231 if (!action_recive_data.m_Target)
237 action_data_wc.m_Target = recive_data_wc.m_Target;
239 action_data_wc.m_RecipeID = recive_data_wc.
m_RecipeID;
class ActionTargets ActionTarget
WorldCraftActionReciveData m_RecipeID
bool InventoryReservation(ActionData action_data)
ref CCIBase m_ConditionItem
ref CCTBase m_ConditionTarget
void ClearInventoryReservationEx(ActionData action_data)
void ClearActionJuncture(ActionData action_data)
bool AddActionJuncture(ActionData action_data)
void ActionContinuousBase()
override void CreateActionComponent()
override void OnFinishProgressServer(ActionData action_data)
override bool ActionConditionContinue(ActionData action_data)
override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
override void OnEndServer(ActionData action_data)
override void Start(ActionData action_data)
override ActionData CreateActionData()
override void CreateConditionComponents()
override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
override string GetSoundCategory(ActionData action_data)
override void OnEndClient(ActionData action_data)
override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
override string GetText()
Super root of all classes in Enforce script.
Base Param Class with no parameters.
proto bool Write(void value_out)
proto bool Read(void value_in)
const float DEFAULT_CRAFT
DayZPlayerConstants
defined in C++
Serializer ParamsReadContext
Serializer ParamsWriteContext
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
PluginBase GetPlugin(typename plugin_type)