Dayz Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Loading...
Searching...
No Matches
tlrlight.c
Go to the documentation of this file.
1class TLRLight extends Switchable_Base
2{
3 PistollightLight m_Light;
4
5 static int REFLECTOR_ID = 1;
6 static int GLASS_ID = 0;
7
8 static string LIGHT_OFF_GLASS = "dz\\gear\\tools\\data\\flashlight_glass.rvmat";
9 static string LIGHT_OFF_REFLECTOR = "dz\\weapons\\attachments\\data\\TLS3.rvmat";
10 static string LIGHT_ON_GLASS = "dz\\gear\\tools\\data\\flashlight_glass_on.rvmat";
11 static string LIGHT_ON_REFLECTOR = "dz\\weapons\\attachments\\data\\TLS3_on.rvmat";
12
14 {
15 return m_Light;
16 }
17
18 override bool CanPutAsAttachment( EntityAI parent )
19 {
20 if(!super.CanPutAsAttachment(parent)) {return false;}
21 if ( !parent.IsKindOf("PlateCarrierHolster") && !parent.IsKindOf("PlateCarrierComplete") && !parent.IsKindOf("CarrierHolsterSolo") && !parent.IsKindOf("ChestHolster") )
22 {
23 return true;
24 }
25
26 return false;
27 }
28
29 override void OnWorkStart()
30 {
31 if ( !g_Game.IsServer() || !g_Game.IsMultiplayer() ) // Client side
32 {
33 m_Light = PistollightLight.Cast( ScriptedLightBase.CreateLight(PistollightLight, "0 0 0", 0.08) ); // Position is zero because light is attached on parent immediately.
34 m_Light.AttachOnMemoryPoint(this, "beamStart", "beamEnd");
35 SetObjectMaterial(GLASS_ID, LIGHT_ON_GLASS);
36 SetObjectMaterial(REFLECTOR_ID, LIGHT_ON_REFLECTOR);
37 }
38 }
39
40 override void OnWork( float consumed_energy )
41 {
42 if ( !g_Game.IsServer() || !g_Game.IsMultiplayer() ) // Client side
43 {
44 Battery9V battery = Battery9V.Cast( GetCompEM().GetEnergySource() );
45
46 if (battery && m_Light)
47 {
48 float efficiency = battery.GetEfficiency0To1();
49
50 if ( efficiency < 1 )
51 {
52 m_Light.SetIntensity( efficiency, GetCompEM().GetUpdateInterval() );
53 }
54 else
55 {
56 m_Light.SetIntensity( 1, 0 );
57 }
58 }
59 }
60 }
61
62 override void OnWorkStop()
63 {
64 if ( !g_Game.IsServer() || !g_Game.IsMultiplayer() ) // Client side
65 {
66 if (m_Light)
67 m_Light.FadeOut();
68
69 m_Light = NULL;
70
71 SetObjectMaterial(GLASS_ID, LIGHT_OFF_GLASS);
72 SetObjectMaterial(REFLECTOR_ID, LIGHT_OFF_REFLECTOR);
73 }
74 }
75
76 // Inventory manipulation
77 override void OnInventoryExit(Man player)
78 {
79 super.OnInventoryExit(player);
80
81 if ( GetCompEM().IsWorking() )
82 {
83 if (player)
84 {
85 vector ori_rotate = player.GetOrientation();
86 ori_rotate = ori_rotate + Vector(270,0,0);
87 SetOrientation(ori_rotate);
88 }
89 }
90 }
91
92 override void SetActions()
93 {
94 super.SetActions();
97 }
98
99 override bool IsLightSource()
100 {
101 return true;
102 }
103}
void AddAction(typename actionName)
float GetEfficiency0To1()
Returns efficiency of this battery. The value is synchronized from server to all clients and is accur...
Definition battery9v.c:13
PistollightLight m_Light
Definition tlrlight.c:3
static string LIGHT_OFF_REFLECTOR
Definition tlrlight.c:9
static string LIGHT_OFF_GLASS
Definition tlrlight.c:8
override void OnInventoryExit(Man player)
Definition tlrlight.c:77
static int REFLECTOR_ID
Definition tlrlight.c:5
override ScriptedLightBase GetLight()
Definition tlrlight.c:13
static int GLASS_ID
Definition tlrlight.c:6
override bool IsLightSource()
Definition tlrlight.c:99
override void OnWorkStop()
Definition tlrlight.c:62
override void OnWork(float consumed_energy)
Definition tlrlight.c:40
override bool CanPutAsAttachment(EntityAI parent)
Definition tlrlight.c:18
override void OnWorkStart()
Definition tlrlight.c:29
static string LIGHT_ON_GLASS
Definition tlrlight.c:10
static string LIGHT_ON_REFLECTOR
Definition tlrlight.c:11
override void SetActions()
Definition tlrlight.c:92
DayZGame g_Game
Definition dayzgame.c:3942
proto native vector Vector(float x, float y, float z)
Vector constructor from components.