DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ ApplyResultModifications()

override void GetBurningMaterial::ApplyResultModifications ( ItemBase result)

См. определение в файле Broom.c строка 165

166{
167 override void Init()
168 {
169 super.Init();
170 m_DecraftResult = "LongWoodenStick";
171 m_ParticleLocalPos = Vector(0, 1.2, 0);
172 }
173
174 override void SetActions()
175 {
176 super.SetActions();
177
180 }
181
182 override bool CanReceiveUpgrade()
183 {
184 return false;
185 }
186
187 override void OnWorkStart()
188 {
189 super.OnWorkStart();
191 }
192
193 override void ApplyResultModifications(ItemBase result)
194 {
195 result.SetHealth(result.GetHealthLevelValue(2,""));
196 result.SetQuantity(1);
197 }
198
199 override bool CanTransformIntoStick()
200 {
201 if ( GetGame().IsServer() && !IsIgnited() && GetEnergy() < 1 && !IsSetForDeletion())
202 return true;
203 else
204 return false;
205 }
206
207
208 override void EEHitBy(TotalDamageResult damageResult, int damageType, EntityAI source, int component, string dmgZone, string ammo, vector modelPos, float speedCoef)
209 {
210 super.EEHitBy(damageResult, damageType, source, component, dmgZone, ammo, modelPos, speedCoef);
211
212 GetCompEM().SetEnergy0To1(GetHealth01("",""));
213 }
214
215
216 override void CalculateQuantity()
217 {
218 if (GetGame().IsServer())
219 {
220 float currentHealth01 = GetHealth01();
221 float currentEnergy01 = GetCompEM().GetEnergy0To1();
222
223 //Health needs to copy internal energy, but only if that means it will be going down from its current value(the item can't heal itself after obtaining damage just because it has full internal energy)
224 SetHealth01("","",Math.Min(currentHealth01,currentEnergy01));
225 //Energy needs to copy health, but only if it is higher(in 01 terms) than health, that means if an item with full energy gets damaged and lit, the internal energy needs to be adjusted to follow the health. Situations where internal energy is lower than health are handled on the line above
226 GetCompEM().SetEnergy0To1(GetHealth01());
227 }
228 }
229
230 override void UpdateParticle()
231 {
232 float normalizedQuant = GetQuantity() / GetQuantityMax();
233
234 if (!m_FireParticle)
235 {
236 m_FireParticle = ParticleManager.GetInstance().PlayOnObject(ParticleList.BROOM_TORCH_T1, this, m_ParticleLocalPos);
237 }
238 m_FireParticle.ScaleParticleParamFromOriginal(EmitorParam.VELOCITY, 1.0);
239 m_FireParticle.ScaleParticleParamFromOriginal(EmitorParam.VELOCITY_RND, 1.0);
240 if (m_FireParticle)
241 {
242 float scale = Math.Max(normalizedQuant * 2.4, 0.4);
243
244 m_FireParticle.ScaleParticleParamFromOriginal(EmitorParam.SIZE, scale);
245 }
246 }
247
248 // DEBUG BELLOW
249 void DebugSetHealthAndEnergy(float time)
250 {
251 float max_energy = GetCompEM().GetEnergyMaxPristine();
252 float health01 = Math.InverseLerp(0, max_energy, time);
253 SetHealth01("","", health01);
254 GetCompEM().SetEnergy( time );
255 }
256
257 override void GetDebugActions(out TSelectableActionInfoArrayEx outputList)
258 {
259 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.BROOM_BURN_VERY_SHORT, "SetBurnTimeTo15Secs", FadeColors.LIGHT_GREY));
260 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.BROOM_BURN_SHORT, "SetBurnTimeTo1Min", FadeColors.LIGHT_GREY));
261 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.BROOM_BURN_MEDIUM, "SetBurnTimeTo10Min", FadeColors.LIGHT_GREY));
262 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.BROOM_BURN_LONG, "SetBurnTimeToMax", FadeColors.LIGHT_GREY));
263 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.SEPARATOR, "___________________________", FadeColors.LIGHT_GREY));
264
265 super.GetDebugActions(outputList);
266 }
267
268 override bool OnAction(int action_id, Man player, ParamsReadContext ctx)
269 {
270 if (super.OnAction(action_id, player, ctx))
271 return true;
272 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
273 {
274 if (action_id == EActions.BROOM_BURN_VERY_SHORT)
275 {
277 OnIgnitedThis(null);
278 }
279 else if (action_id == EActions.BROOM_BURN_SHORT)
280 {
282 OnIgnitedThis(null);
283 }
284 else if (action_id == EActions.BROOM_BURN_MEDIUM)
285 {
287 OnIgnitedThis(null);
288 }
289 else if (action_id == EActions.BROOM_BURN_LONG)
290 {
291 DebugSetHealthAndEnergy(GetCompEM().GetEnergyMaxPristine());
292 OnIgnitedThis(null);
293 }
294 }
295 return false;
296 }
297
298}
299
300class Broom: BroomBase
301{
302 override string GetBurningMaterial()
303 {
304 return "DZ\\gear\\tools\\data\\broom_emissive.rvmat";
305 }
306
307 override string GetBurntMaterial()
308 {
309 return "DZ\\gear\\tools\\data\\broom_burn.rvmat";
310 }
311}
Param4< int, int, string, int > TSelectableActionInfoWithColor
Определения EntityAI.c:97
void AddAction(typename actionName)
Определения AdvancedCommunication.c:220
override void UpdateParticle()
Определения Broom.c:202
override void CalculateQuantity()
Определения Broom.c:188
override void GetDebugActions(out TSelectableActionInfoArrayEx outputList)
Определения Broom.c:229
override bool CanReceiveUpgrade()
Определения Broom.c:154
override void SetActions()
Определения Broom.c:146
override void OnWorkStart()
Определения Broom.c:159
override bool OnAction(int action_id, Man player, ParamsReadContext ctx)
Определения Broom.c:240
override bool CanTransformIntoStick()
Определения Broom.c:171
override void Init()
Launched from 'DayZGame.DeferredInit' to make earlier access, use, and updates impossible (downside o...
Определения Broom.c:139
override void EEHitBy(TotalDamageResult damageResult, int damageType, EntityAI source, int component, string dmgZone, string ammo, vector modelPos, float speedCoef)
Определения Broom.c:180
void DebugSetHealthAndEnergy(float time)
Определения Broom.c:221
override void ApplyResultModifications(ItemBase result)
Определения Broom.c:165
EActions
Определения EActions.c:2
override void OnIgnitedThis(EntityAI fire_source)
Executed on Server when some item ignited this one.
Определения FireworksBase.c:96
class BoxCollidingParams component
ComponentInfo for BoxCollidingResult.
override float GetQuantity()
Определения ItemBase.c:8154
float GetEnergy()
Определения ItemBase.c:8278
override int GetQuantityMax()
Определения ItemBase.c:8106
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)
Определения ParticleManager.c:88
Определения Broom.c:2
Определения Building.c:6
override void SetActions()
Определения Torch.c:754
string GetBurningMaterial()
Определения Torch.c:796
string GetBurntMaterial()
Определения Torch.c:801
Определения Torch.c:2
override bool SetQuantity(float value, bool destroy_config=true, bool destroy_forced=false, bool allow_client=false, bool clamp_to_stack_max=true)
Определения PileOfWoodenPlanks.c:88
Определения InventoryItem.c:731
Определения EnMath.c:7
static const int BROOM_TORCH_T1
Определения ParticleList.c:78
Определения ParticleList.c:12
Определения DamageSystem.c:2
Определения EnConvert.c:106
Serializer ParamsReadContext
Определения gameplay.c:15
proto native CGame GetGame()
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
static proto float Max(float x, float y)
Returns bigger of two given values.
static proto float Min(float x, float y)
Returns smaller of two given values.
static proto float InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
EmitorParam
Определения EnVisual.c:114
const int SAT_DEBUG_ACTION
Определения constants.c:452