Scriptname NNWTagesLichtSkript extends ObjectReference  

Keyword Property NNWTagesLichtQuelle Auto
Keyword Property NNWLampenReferenz Auto
ObjectReference Property TagesLicht Auto Hidden 
ObjectReference Property Lampe Auto Hidden
ImageSpaceModifier Property NNWNachtModus Auto
Float Property Lichtaus = 19.0 Auto
Float Property Lichtan = 7.0 Auto

Float Function Holezeit() Global

	Float Zeit = Utility.GetCurrentGameTime()
	Zeit -= Math.Floor(Zeit)
	Zeit *= 24
	Return Zeit
EndFunction

Function AktualisiereZeit(Float zeitimspiel)
 
	Float jetzt = Holezeit()
	If (zeitimspiel < jetzt)
		zeitimspiel += 24
	EndIf
 
	RegisterForSingleUpdateGameTime(zeitimspiel - jetzt)
 
EndFunction

Event OnInit()

TagesLicht = GetLinkedRef(NNWTagesLichtQuelle)
Lampe = GetLinkedRef(NNWLampenReferenz)
	
If (Holezeit() > Lichtaus)
		GoToState("aus")
	Else
		GoToState("an")
	EndIf
EndEvent


State aus
 
	Event OnBeginState()
		TagesLicht.Disable(True)
		Lampe.Enable(True)
		NNWNachtModus.Apply()
		AktualisiereZeit(Lichtan)
	EndEvent
 
	Event OnUpdateGameTime()
		GoToState("an")
	EndEvent
 
EndState
 
State an
 
	Event OnBeginState()
		NNWNachtModus.Remove()
		TagesLicht.Enable()
		Lampe.Disable(True)
		AktualisiereZeit(Lichtaus)
	EndEvent
 
	Event OnUpdateGameTime()
		GoToState("aus")
	EndEvent
 
EndState	