1class Headtorch_ColorBase
extends Clothing
5 static int REFLECTOR_ID = 4;
6 static int GLASS_ID = 5;
8 static string LIGHT_OFF_GLASS =
"dz\\characters\\headgear\\data\\HeadTorchGlass.rvmat";
9 static string LIGHT_OFF_REFLECTOR =
"dz\\characters\\headgear\\data\\HeadTorch.rvmat";
10 static string LIGHT_ON_GLASS =
"dz\\characters\\headgear\\data\\HeadTorchGlass_on.rvmat";
11 static string LIGHT_ON_GLASS_RED =
"dz\\characters\\headgear\\data\\HeadTorchGlass_on_red.rvmat";
12 static string LIGHT_ON_REFLECTOR =
"dz\\characters\\headgear\\data\\HeadTorch_ON.rvmat";
13 static string LIGHT_ON_REFLECTOR_RED =
"dz\\characters\\headgear\\data\\HeadTorch_ON_red.rvmat";
17 static string m_OffHeadLightPoint =
"beamStart";
18 static string m_OffHeadLightTarget =
"beamEnd";
27 m_Timer.Run(1 ,
this,
"CheckParent", NULL,
false);
32 super.InitGlobalExclusionValues();
33 AddSingleExclusionValueGlobal(EAttExclusions.EXCLUSION_HEADSTRAP_0);
38 EntityAI owner = GetHierarchyParent();
41 if (owner && owner.IsZombie())
43 GetInventory().CreateAttachment(
"Battery9V");
44 GetCompEM().SwitchOn();
62 SetObjectMaterial(GLASS_ID, LIGHT_ON_GLASS_RED);
63 SetObjectMaterial(REFLECTOR_ID, LIGHT_ON_REFLECTOR_RED);
67 SetObjectMaterial(GLASS_ID, LIGHT_ON_GLASS);
68 SetObjectMaterial(REFLECTOR_ID, LIGHT_ON_REFLECTOR);
72 override void OnWork(
float consumed_energy)
76 Battery9V battery = Battery9V.Cast(GetCompEM().GetEnergySource());
80 float efficiency = battery.GetEfficiency0To1();
106 EntityAI owner = GetHierarchyParent();
110 if (owner.IsPlayer())
113 ItemBase att_item = owner_PB.GetItemOnSlot(
"Eyewear");
115 if (att_item ==
this)
121 m_Light.AttachOnMemoryPoint(
this, m_OffHeadLightPoint, m_OffHeadLightTarget);
124 else if (owner.IsZombie())
127 EntityAI item_EAI = owner.GetInventory().FindAttachment(slot_id);
138 m_Light.AttachOnMemoryPoint(
this, m_OffHeadLightPoint, m_OffHeadLightTarget);
144 if (person.IsPlayer())
147 int boneIdx = player.GetBoneIndexByName(
"Head");
154 m_Light.SetPosition(m_OnHeadLocalPos);
155 m_Light.SetOrientation(m_OnHeadLocalOri);
157 player.AddChild(
m_Light, boneIdx);
160 else if (person.IsZombie())
165 m_Light.SetPosition(m_OnHeadLocalPos);
166 m_Light.SetOrientation(m_OnHeadLocalOri);
174 super.OnWasAttached(parent, slot_id);
189 super.OnWasDetached(parent, slot_id);
191 if (parent && (parent.IsPlayer() || parent.IsZombie()))
196 m_Light.AttachOnMemoryPoint(
this, m_OffHeadLightPoint, m_OffHeadLightTarget);
211 SetObjectMaterial(GLASS_ID, LIGHT_OFF_GLASS);
212 SetObjectMaterial(REFLECTOR_ID, LIGHT_OFF_REFLECTOR);
void AddAction(typename actionName)
protected ExplosiveLight m_Light
light
void Headtorch_ColorBase()
void AttachLightOnHead(EntityAI person)
override ItemBase GetLightSourceItem()
void CreateHeadtorchLight()
override bool IsLightSource()
override void OnWorkStop()
override void OnWork(float consumed_energy)
override void OnWasDetached(EntityAI parent, int slot_id)
override protected void InitGlobalExclusionValues()
override void OnWorkStart()
override void OnWasAttached(EntityAI parent, int slot_id)
override void SetActions()
provides access to slot configuration
static proto native int GetSlotIdFromString(string slot_name)
converts string to slot_id
void SetIntensity(float coef, float time)
proto native CGame GetGame()
proto native vector Vector(float x, float y, float z)
Vector constructor from components.