DayZ Scripts
v1.21.156300 ยท Jun 20, 2023
 
Loading...
Searching...
No Matches
Clothing_Base.c
Go to the documentation of this file.
1// I know the filename is stupid, but it's what the other files in this structure use..
2// And I can't really make it "class Clothing_Base extends Clothing"
3// since that will conflict with config and other parts of script and break mods :c
5{
6 override bool IsClothing()
7 {
8 return true;
9 }
10
11 override bool CanHaveWetness()
12 {
13 return true;
14 }
15
18 {
19 return -1;
20 }
21
22 //----------------------------------------------------------------
23 // GameplayWidgetEffects
25 {
26 return null;
27 }
28
29 // Conditions
30 override bool CanPutInCargo( EntityAI parent )
31 {
32 if ( !super.CanPutInCargo( parent ) )
33 return false;
34
35 return !parent || CanPutInCargoClothingConditions( parent );
36 }
37
39 {
40 bool is_hidden_stash_exception = false;
41
42 if ( parent.IsInherited( UndergroundStash ) )
43 is_hidden_stash_exception = true;
44
45 if ( GetNumberOfItems() == 0 || !parent || parent.IsMan() || is_hidden_stash_exception )
46 {
47 EntityAI cargoParent = parent.GetHierarchyParent();
48 ClothingBase parentClothing = ClothingBase.Cast(parent);
49 if (cargoParent)
50 return !(parent.IsClothing() && cargoParent.IsClothing()) || ( parentClothing && parentClothing.SmershException(cargoParent) );
51
52 return true;
53 }
54
55 return false;
56 }
57
58 override bool CanReceiveItemIntoCargo( EntityAI item )
59 {
60 if (!super.CanReceiveItemIntoCargo(item))
61 return false;
62
63 return CanReceiveItemIntoCargoClothingConditions( item );
64 }
65
67 {
68 EntityAI hierarchyParent = GetHierarchyParent();
69 return !hierarchyParent || hierarchyParent.IsMan() || SmershException(hierarchyParent);
70 }
71
72 //Kind of a hack but I don't have enough time left to do larger scale reworks, sorry
73 bool SmershException(EntityAI hierarchyParent)
74 {
75 EntityAI hp = hierarchyParent.GetHierarchyParent();
76 if (hp)
77 {
78 if (!hp.IsMan())
79 return false;
80 }
81
82 return IsInherited(SmershBag) && hierarchyParent.IsInherited(SmershVest);
83 }
84
85 override bool CanLoadItemIntoCargo(EntityAI item)
86 {
87 if (!super.CanLoadItemIntoCargo(item))
88 return false;
89
90 return CanLoadItemIntoCargoClothingConditions(item);
91 }
92
94 {
95 EntityAI parent = GetHierarchyParent();
96
97 if ( parent && parent.IsInherited( UndergroundStash ) )
98 return true;
99
100 return !parent || parent.IsMan() || SmershException(parent);
101 }
102
103 //Method used to specify if a piece of eyeware can be worn under a gas mask
106 {
107 return true;
108 }
109
110 // -------------------------------------------------------------------------
111 override void EEHealthLevelChanged(int oldLevel, int newLevel, string zone)
112 {
113 super.EEHealthLevelChanged(oldLevel, newLevel, zone);
114 if ( !GetGame().IsDedicatedServer() )
115 {
116 PlayerBase player_owner = PlayerBase.Cast(GetHierarchyParent());
117
118 if( player_owner )
119 {
120 if( player_owner.m_CorpseState != 0 )
121 {
122 GetGame().GetCallQueue( CALL_CATEGORY_GUI ).CallLater( player_owner.UpdateCorpseState, 0, false);
123 }
124 }
125 }
126 }
127
128 override void SwitchItemSelectionTextureEx(EItemManipulationContext context, Param par = null)
129 {
130 super.SwitchItemSelectionTextureEx(context, par);
131
132 Param1<PlayerBase> data = Param1<PlayerBase>.Cast(par);
133 if (!data)
134 {
135 return;
136 }
137
138 PlayerBase player = data.param1;
139
140 int personality = GetHiddenSelectionIndex("personality");
141 if (personality >= 0)
142 {
143 string tone_mat = player.m_EmptyGloves.GetHiddenSelectionsMaterials().Get(0);
144 string tone_texture;
145
146 if (player.m_CorpseState > PlayerConstants.CORPSE_STATE_FRESH)
147 {
148 tone_texture = player.m_DecayedTexture;
149 }
150 else
151 {
152 tone_texture = player.m_EmptyGloves.GetHiddenSelectionsTextures().Get(0);
153 }
154
155 SetObjectMaterial( personality, tone_mat );
156 SetObjectTexture( personality, tone_texture );
157 }
158 }
159};
160
162 //intermediate types//
164class Belt_Base : Clothing {};
165class Backpack_Base : Clothing {};
167{
168 override protected void InitGlobalExclusionValues()
169 {
170 super.InitGlobalExclusionValues();
171
172 AddSingleExclusionValueGlobal(EAttExclusions.EXCLUSION_GLASSES_REGULAR_0);
173 }
174};
175class Gloves_Base : Clothing {};
176class HeadGear_Base : Clothing {};
177class Mask_Base : Clothing {};
178class Pants_Base : Clothing {};
179class Shoes_Base : Clothing {};
180class Top_Base : Clothing {};
181class Vest_Base : Clothing {};
182
Clothing ClothingBase
int GetNumberOfItems()
Returns the number of items in cargo, otherwise returns 0(non-cargo objects). Recursive.
Definition ItemBase.c:8031
override ScriptCallQueue GetCallQueue(int call_category)
Definition DayZGame.c:1153
bool CanReceiveItemIntoCargoClothingConditions(EntityAI item)
array< int > GetEffectWidgetTypes()
override bool CanHaveWetness()
override bool CanReceiveItemIntoCargo(EntityAI item)
override bool CanLoadItemIntoCargo(EntityAI item)
bool CanLoadItemIntoCargoClothingConditions(EntityAI item)
bool CanPutInCargoClothingConditions(EntityAI parent)
bool SmershException(EntityAI hierarchyParent)
override void EEHealthLevelChanged(int oldLevel, int newLevel, string zone)
override bool CanPutInCargo(EntityAI parent)
int GetGlassesEffectID()
Used for 'glasses' (and other colored layers triggered by attach/detach in the InventorySlots....
bool CanWearUnderMask(EntityAI parent)
deprecated
override void SwitchItemSelectionTextureEx(EItemManipulationContext context, Param par=null)
override bool IsClothing()
override bool IsMan()
Definition Man.c:33
override protected void InitGlobalExclusionValues()
hard helmet base
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Definition param.c:12
static const int CORPSE_STATE_FRESH
proto void CallLater(func fn, int delay=0, bool repeat=false, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL)
adds call into the queue with given parameters and arguments (arguments are held in memory until the ...
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native CGame GetGame()
const int CALL_CATEGORY_GUI
Definition tools.c:9