fog and lights
This commit is contained in:
parent
bfc3e55c27
commit
206b67ebbd
6 changed files with 181 additions and 33 deletions
|
@ -435,6 +435,7 @@ func _process(delta: float) -> void:
|
||||||
if not MenuOpen and not InvOpen and OtherOpen == null and SelectedDoor == null and not ConsoleOpen and not Using294 and SelectedScreen == null and EndingTimer >= 0:
|
if not MenuOpen and not InvOpen and OtherOpen == null and SelectedDoor == null and not ConsoleOpen and not Using294 and SelectedScreen == null and EndingTimer >= 0:
|
||||||
LightVolume = Utils.CurveValue(TempLightVolume, LightVolume, 50.0)
|
LightVolume = Utils.CurveValue(TempLightVolume, LightVolume, 50.0)
|
||||||
if PlayerRoom:
|
if PlayerRoom:
|
||||||
|
env.fog_enabled = true
|
||||||
env.fog_depth_begin = CameraFogNear * LightVolume
|
env.fog_depth_begin = CameraFogNear * LightVolume
|
||||||
env.fog_depth_end = CameraFogFar * LightVolume
|
env.fog_depth_end = CameraFogFar * LightVolume
|
||||||
#CameraFogRange(Camera, CameraFogNear*LightVolume,CameraFogFar*LightVolume)
|
#CameraFogRange(Camera, CameraFogNear*LightVolume,CameraFogFar*LightVolume)
|
||||||
|
@ -442,7 +443,7 @@ func _process(delta: float) -> void:
|
||||||
#CameraFogMode Camera,1
|
#CameraFogMode Camera,1
|
||||||
if PlayerRoom:
|
if PlayerRoom:
|
||||||
Global.player.camera.near = 0.05
|
Global.player.camera.near = 0.05
|
||||||
Global.player.camera.far = max(min(CameraFogFar * LightVolume * 1.5, 28), 0.06)
|
Global.player.camera.far = max(min(CameraFogFar * LightVolume * 1.5, 28), 0.06) * 100
|
||||||
#CameraRange(Camera, 0.05, Min(CameraFogFar*LightVolume*1.5,28))
|
#CameraRange(Camera, 0.05, Min(CameraFogFar*LightVolume*1.5,28))
|
||||||
#If PlayerRoom\RoomTemplate\Name<>"pocketdimension" Then
|
#If PlayerRoom\RoomTemplate\Name<>"pocketdimension" Then
|
||||||
#CameraClsColor(Camera, 0,0,0)
|
#CameraClsColor(Camera, 0,0,0)
|
||||||
|
@ -554,6 +555,7 @@ func UpdateRooms():
|
||||||
if z < 4.0:
|
if z < 4.0:
|
||||||
if abs(EntityY(Global.player) - EntityY(r.obj)) < 1.5:
|
if abs(EntityY(Global.player) - EntityY(r.obj)) < 1.5:
|
||||||
PlayerRoom = r
|
PlayerRoom = r
|
||||||
|
print(r)
|
||||||
foundNewPlayerRoom = true
|
foundNewPlayerRoom = true
|
||||||
|
|
||||||
hide = false if PlayerRoom == null else true
|
hide = false if PlayerRoom == null else true
|
||||||
|
@ -834,6 +836,23 @@ var Step2SFX = Utils.Init1DArray(6)
|
||||||
|
|
||||||
var eventSystem: EventSystem
|
var eventSystem: EventSystem
|
||||||
|
|
||||||
|
var lightTemplates: Array[LightTemplate]
|
||||||
|
|
||||||
|
func AddTempLight(rt: RoomTemplate, x: float, y: float, z: float, ltype: int, range: float, r: int, g: int, b: int) -> LightTemplate:
|
||||||
|
var lt: LightTemplate = LightTemplate.new()
|
||||||
|
lightTemplates.push_back(lt)
|
||||||
|
lt.roomtemplate = rt
|
||||||
|
lt.x = x
|
||||||
|
lt.y = y
|
||||||
|
lt.z = z
|
||||||
|
lt.ltype = ltype
|
||||||
|
lt.range = range
|
||||||
|
lt.r = r
|
||||||
|
lt.g = g
|
||||||
|
lt.b = b
|
||||||
|
|
||||||
|
return lt
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
# 0 = light containment, 1 = heavy containment, 2 = entrance
|
# 0 = light containment, 1 = heavy containment, 2 = entrance
|
||||||
AmbientSFXAmount[0] = 8
|
AmbientSFXAmount[0] = 8
|
||||||
|
@ -4635,19 +4654,15 @@ func FillRoom(r:Room):
|
||||||
#PositionEntity r\Levers[0],r\x+205.0*RoomScale,r\y+200.0*RoomScale,r\z+2287.0*RoomScale
|
#PositionEntity r\Levers[0],r\x+205.0*RoomScale,r\y+200.0*RoomScale,r\z+2287.0*RoomScale
|
||||||
#EntityParent r\Levers[0],r\obj
|
#EntityParent r\Levers[0],r\obj
|
||||||
#;[End Block]
|
#;[End Block]
|
||||||
#
|
|
||||||
#For lt.lighttemplates = Each LightTemplates
|
for lt: LightTemplate in lightTemplates:
|
||||||
#If lt\roomtemplate = r\RoomTemplate Then
|
if lt.roomtemplate == r.RoomTemplate:
|
||||||
#newlt = AddLight(r, r\x+lt\x, r\y+lt\y, r\z+lt\z, lt\ltype, lt\range, lt\r, lt\g, lt\b)
|
var newlt = AddLight(r, r.x + lt.x, r.y + lt.y, r.z + lt.z, lt.ltype, lt.range, lt.r, lt.g, lt.b)
|
||||||
#If newlt <> 0 Then
|
if newlt != null:
|
||||||
#If lt\ltype = 3 Then
|
if lt.ltype == 3:
|
||||||
#LightConeAngles(newlt, lt\innerconeangle, lt\outerconeangle)
|
# TODO: LightConeAngles(newlt, lt.innerconeangle, lt.outerconeangle)
|
||||||
#RotateEntity(newlt, lt\pitch, lt\yaw, 0)
|
RotateEntity(newlt, lt.pitch, lt.yaw, 0)
|
||||||
#EndIf
|
|
||||||
#EndIf
|
|
||||||
#EndIf
|
|
||||||
#Next
|
|
||||||
#
|
|
||||||
#For ts.tempscreens = Each TempScreens
|
#For ts.tempscreens = Each TempScreens
|
||||||
#If ts\roomtemplate = r\RoomTemplate Then
|
#If ts\roomtemplate = r\RoomTemplate Then
|
||||||
#CreateScreen(r\x+ts\x, r\y+ts\y, r\z+ts\z, ts\imgpath, r)
|
#CreateScreen(r\x+ts\x, r\y+ts\y, r\z+ts\z, ts\imgpath, r)
|
||||||
|
@ -4683,6 +4698,118 @@ func FillRoom(r:Room):
|
||||||
#
|
#
|
||||||
#CatchErrors("FillRoom ("+r\RoomTemplate\Name+")")
|
#CatchErrors("FillRoom ("+r\RoomTemplate\Name+")")
|
||||||
|
|
||||||
|
func CreateLight(ltype: int):
|
||||||
|
var light: Light3D
|
||||||
|
if ltype == 1:
|
||||||
|
light = DirectionalLight3D.new()
|
||||||
|
elif ltype == 1:
|
||||||
|
light = OmniLight3D.new()
|
||||||
|
elif ltype == 2:
|
||||||
|
light = SpotLight3D.new()
|
||||||
|
else:
|
||||||
|
light = DirectionalLight3D.new()
|
||||||
|
|
||||||
|
return light
|
||||||
|
|
||||||
|
var LightSpriteTex = Utils.Init1DArray(10)
|
||||||
|
|
||||||
|
func AddLight(room: Room, x: float, y: float, z: float, ltype: int, range: float, r: int, g: int, b: int):
|
||||||
|
if room != null:
|
||||||
|
for i in range(0, Constants.MaxRoomLights):
|
||||||
|
if room.Lights[i] == null:
|
||||||
|
room.Lights[i] = CreateLight(ltype)
|
||||||
|
#room\LightDist[i] = range
|
||||||
|
LightRange(room.Lights[i], range)
|
||||||
|
LightColor(room.Lights[i], r, g, b)
|
||||||
|
EntityParent(room.Lights[i], room.obj)
|
||||||
|
PositionEntity(room.Lights[i], x, y, z, true)
|
||||||
|
|
||||||
|
room.LightIntensity[i] = (r + g + b) / 255.0 / 3.0
|
||||||
|
|
||||||
|
room.LightSprites[i] = CreateSprite()
|
||||||
|
ScaleSprite(room.LightSprites[i], 0.13 , 0.13)
|
||||||
|
EntityTexture(room.LightSprites[i], LightSpriteTex[0])
|
||||||
|
# TODO: EntityBlend (room\LightSprites[i], 3)
|
||||||
|
EntityParent(room.LightSprites[i], room.obj)
|
||||||
|
PositionEntity(room.LightSprites[i], x, y, z)
|
||||||
|
|
||||||
|
room.LightSpritesPivot[i] = CreatePivot()
|
||||||
|
#EntityRadius room.LightSpritesPivot[i],0.05
|
||||||
|
EntityParent(room.LightSpritesPivot[i], room.obj)
|
||||||
|
PositionEntity(room.LightSpritesPivot[i], x, y, z)
|
||||||
|
|
||||||
|
room.LightSprites2[i] = CreateSprite()
|
||||||
|
EntityParent(room.LightSprites2[i], room.obj)
|
||||||
|
PositionEntity(room.LightSprites2[i], x, y, z)
|
||||||
|
ScaleSprite(room.LightSprites2[i], 0.6, 0.6)
|
||||||
|
EntityTexture(room.LightSprites2[i], LightSpriteTex[2])
|
||||||
|
#EntityBlend(room.LightSprites2[i], 3)
|
||||||
|
#EntityOrder(room.LightSprites2[i], -1)
|
||||||
|
EntityColor(room.LightSprites2[i], r, g, b)
|
||||||
|
#EntityFX(room.LightSprites2[i],1)
|
||||||
|
RotateEntity(room.LightSprites2[i], 0, 0, randi_range(0, 360))
|
||||||
|
SpriteViewMode(room.LightSprites2[i], 1)
|
||||||
|
room.LightSpriteHidden[i] = true
|
||||||
|
room.LightSprites2[i].visible = false
|
||||||
|
#HideEntity room\LightSprites2[i]
|
||||||
|
room.LightFlicker[i] = randi_range(1, 10)
|
||||||
|
|
||||||
|
room.LightR[i] = r
|
||||||
|
room.LightG[i] = g
|
||||||
|
room.LightB[i] = b
|
||||||
|
|
||||||
|
room.Lights[i].visible = false
|
||||||
|
#HideEntity room.Lights[i]
|
||||||
|
|
||||||
|
room.MaxLights = room.MaxLights + 1
|
||||||
|
|
||||||
|
return room.Lights[i]
|
||||||
|
else:
|
||||||
|
var light = CreateLight(ltype)
|
||||||
|
EntityParent(light, room.obj)
|
||||||
|
LightRange(light, range)
|
||||||
|
LightColor(light, r, g, b)
|
||||||
|
PositionEntity(light, x, y, z, true)
|
||||||
|
var sprite = CreateSprite()
|
||||||
|
PositionEntity(sprite, x, y, z)
|
||||||
|
ScaleSprite(sprite, 0.13 , 0.13)
|
||||||
|
EntityTexture(sprite, LightSpriteTex[0])
|
||||||
|
# TODO: EntityBlend (sprite, 3)
|
||||||
|
return light
|
||||||
|
|
||||||
|
func SpriteViewMode(sprite: Sprite3D, mode: int):
|
||||||
|
if mode == 1:
|
||||||
|
sprite.billboard = BaseMaterial3D.BILLBOARD_ENABLED
|
||||||
|
elif mode == 2:
|
||||||
|
sprite.billboard = BaseMaterial3D.BILLBOARD_DISABLED
|
||||||
|
elif mode == 3:
|
||||||
|
sprite.billboard = BaseMaterial3D.BILLBOARD_ENABLED
|
||||||
|
elif mode == 4:
|
||||||
|
sprite.billboard = BaseMaterial3D.BILLBOARD_FIXED_Y
|
||||||
|
else:
|
||||||
|
sprite.billboard = BaseMaterial3D.BILLBOARD_ENABLED
|
||||||
|
|
||||||
|
func CreateSprite():
|
||||||
|
return Sprite3D.new()
|
||||||
|
|
||||||
|
func CreatePivot():
|
||||||
|
return Node3D.new()
|
||||||
|
|
||||||
|
func EntityColor(sprite: Sprite3D, r: int, g: int, b: int):
|
||||||
|
sprite.modulate = Color8(r, g, b)
|
||||||
|
|
||||||
|
func EntityTexture(sprite: Sprite3D, tex):
|
||||||
|
sprite.texture = tex
|
||||||
|
|
||||||
|
func LightColor(light: Light3D, r: int, g: int, b: int):
|
||||||
|
light.light_color = Color8(r, g, b)
|
||||||
|
|
||||||
|
func LightRange(light: Light3D, range: float):
|
||||||
|
if light is OmniLight3D:
|
||||||
|
light.omni_range = range
|
||||||
|
elif light is SpotLight3D:
|
||||||
|
light.spot_range = range
|
||||||
|
|
||||||
func LoadRoomTemplates(file: String):
|
func LoadRoomTemplates(file: String):
|
||||||
var TemporaryString: String
|
var TemporaryString: String
|
||||||
var i: int
|
var i: int
|
||||||
|
@ -4827,7 +4954,7 @@ var loadedRoomMeshes: int = 0
|
||||||
func LoadRoomMesh(rt: RoomTemplate):
|
func LoadRoomMesh(rt: RoomTemplate):
|
||||||
var path = Utils.GetCaseiFileName(str("res://", rt.objPath.replace("\\", "/"))).replace("res://", "")
|
var path = Utils.GetCaseiFileName(str("res://", rt.objPath.replace("\\", "/"))).replace("res://", "")
|
||||||
if rt.objPath.contains(".rmesh"): # file is roommesh
|
if rt.objPath.contains(".rmesh"): # file is roommesh
|
||||||
rt.obj = RMesh.LoadRMesh(path, rt)
|
rt.obj = RMesh.LoadRMesh(path, rt, self)
|
||||||
# TODO: Implement b3d maps, not pressing as newer vers use exclusively rmesh
|
# TODO: Implement b3d maps, not pressing as newer vers use exclusively rmesh
|
||||||
#else: #file is b3d
|
#else: #file is b3d
|
||||||
#If rt\objPath <> "" Then rt\obj = LoadWorld(rt\objPath, rt) Else rt\obj = CreatePivot()
|
#If rt\objPath <> "" Then rt\obj = LoadWorld(rt\objPath, rt) Else rt\obj = CreatePivot()
|
||||||
|
|
|
@ -21,6 +21,7 @@ var frameDelay = 1
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
if loadStage == 0 and frameDelay == 0:
|
if loadStage == 0 and frameDelay == 0:
|
||||||
LoadAllSounds.Go(map)
|
LoadAllSounds.Go(map)
|
||||||
|
|
||||||
|
|
||||||
map.LoadRoomTemplates("Data/rooms.ini")
|
map.LoadRoomTemplates("Data/rooms.ini")
|
||||||
|
|
||||||
|
|
|
@ -248,7 +248,7 @@ func _process(delta: float) -> void:
|
||||||
if not UnableToMove:
|
if not UnableToMove:
|
||||||
Shake = fmod((Shake + Global.FPSfactor * min(Sprint, 1.5) * 7), 720)
|
Shake = fmod((Shake + Global.FPSfactor * min(Sprint, 1.5) * 7), 720)
|
||||||
if shake < 180 and fmod(Shake, 360) >= 180 and KillTimer >= 0:
|
if shake < 180 and fmod(Shake, 360) >= 180 and KillTimer >= 0:
|
||||||
print("step sound")
|
print("step sound " + str(shake))
|
||||||
if CurrStepSFX == 0:
|
if CurrStepSFX == 0:
|
||||||
var temp = GetStepSound()
|
var temp = GetStepSound()
|
||||||
if Sprint == 1.0:
|
if Sprint == 1.0:
|
||||||
|
@ -383,7 +383,7 @@ func _process(delta: float) -> void:
|
||||||
Global.PlayTempSound(map.StepSFX[0][0][randi_range(0, 7)])
|
Global.PlayTempSound(map.StepSFX[0][0][randi_range(0, 7)])
|
||||||
Global.PlayerSoundVolume = max(3.0, Global.PlayerSoundVolume)
|
Global.PlayerSoundVolume = max(3.0, Global.PlayerSoundVolume)
|
||||||
DropSpeed = 0
|
DropSpeed = 0
|
||||||
else:
|
elif not is_on_floor():
|
||||||
DropSpeed = min(max(DropSpeed - 0.006 * Global.FPSfactor, -2.0), 0.0)
|
DropSpeed = min(max(DropSpeed - 0.006 * Global.FPSfactor, -2.0), 0.0)
|
||||||
if PlayerFallingPickDistance != 0:
|
if PlayerFallingPickDistance != 0:
|
||||||
floorPick.target_position.y = -PlayerFallingPickDistance
|
floorPick.target_position.y = -PlayerFallingPickDistance
|
||||||
|
|
|
@ -10,7 +10,7 @@ static var RMESH_LOAD_COUNT = 0
|
||||||
|
|
||||||
const surfaceShader = preload("res://shaders/LightmapSurface.gdshader")
|
const surfaceShader = preload("res://shaders/LightmapSurface.gdshader")
|
||||||
|
|
||||||
static func LoadRMesh(file: String, rt: RoomTemplate):
|
static func LoadRMesh(file: String, rt: RoomTemplate, map: DynamicMap):
|
||||||
var correctedPath = file.replace("\\", "/")
|
var correctedPath = file.replace("\\", "/")
|
||||||
var fileName = correctedPath.split("/")[-1]
|
var fileName = correctedPath.split("/")[-1]
|
||||||
|
|
||||||
|
@ -90,6 +90,8 @@ static func LoadRMesh(file: String, rt: RoomTemplate):
|
||||||
var activeBump: Texture2D = null
|
var activeBump: Texture2D = null
|
||||||
var hasNoLightmap = false
|
var hasNoLightmap = false
|
||||||
|
|
||||||
|
var lightTemplates: Array[LightTemplate]
|
||||||
|
|
||||||
for i1 in range(count): # drawn mesh
|
for i1 in range(count): # drawn mesh
|
||||||
childMesh = Mesh.new()
|
childMesh = Mesh.new()
|
||||||
var vertices = PackedVector3Array()
|
var vertices = PackedVector3Array()
|
||||||
|
@ -277,6 +279,7 @@ static func LoadRMesh(file: String, rt: RoomTemplate):
|
||||||
#mat.albedo_color = Color(randi() % 255 / 255.0, randi() % 255 / 255.0, randi() % 255 / 255.0)
|
#mat.albedo_color = Color(randi() % 255 / 255.0, randi() % 255 / 255.0, randi() % 255 / 255.0)
|
||||||
mat.albedo_texture = activeAlbedo
|
mat.albedo_texture = activeAlbedo
|
||||||
mat.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA_DEPTH_PRE_PASS if activeAlbedoHasAlpha else BaseMaterial3D.TRANSPARENCY_DISABLED
|
mat.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA_DEPTH_PRE_PASS if activeAlbedoHasAlpha else BaseMaterial3D.TRANSPARENCY_DISABLED
|
||||||
|
mat.shading_mode = BaseMaterial3D.SHADING_MODE_PER_VERTEX
|
||||||
meshInstance.set_surface_override_material(0, mat)
|
meshInstance.set_surface_override_material(0, mat)
|
||||||
else:
|
else:
|
||||||
var mat = ShaderMaterial.new()
|
var mat = ShaderMaterial.new()
|
||||||
|
@ -340,6 +343,8 @@ static func LoadRMesh(file: String, rt: RoomTemplate):
|
||||||
var mat = StandardMaterial3D.new()
|
var mat = StandardMaterial3D.new()
|
||||||
#mat.albedo_color = Color(randi() % 255 / 255.0, randi() % 255 / 255.0, randi() % 255 / 255.0)
|
#mat.albedo_color = Color(randi() % 255 / 255.0, randi() % 255 / 255.0, randi() % 255 / 255.0)
|
||||||
mat.albedo_color = Color.GREEN
|
mat.albedo_color = Color.GREEN
|
||||||
|
mat.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA
|
||||||
|
mat.albedo_color.a = 0.25
|
||||||
meshInstance.set_surface_override_material(0, mat)
|
meshInstance.set_surface_override_material(0, mat)
|
||||||
meshInstance.create_trimesh_collision()
|
meshInstance.create_trimesh_collision()
|
||||||
meshInstance.visible = true
|
meshInstance.visible = true
|
||||||
|
@ -392,8 +397,8 @@ static func LoadRMesh(file: String, rt: RoomTemplate):
|
||||||
#mat.albedo_color = Color(randi() % 255 / 255.0, randi() % 255 / 255.0, randi() % 255 / 255.0)
|
#mat.albedo_color = Color(randi() % 255 / 255.0, randi() % 255 / 255.0, randi() % 255 / 255.0)
|
||||||
mat.albedo_color = Color.RED
|
mat.albedo_color = Color.RED
|
||||||
meshInstance.set_surface_override_material(0, mat)
|
meshInstance.set_surface_override_material(0, mat)
|
||||||
meshInstance.create_trimesh_collision()
|
#meshInstance.create_trimesh_collision()
|
||||||
#meshInstance.visible = false
|
meshInstance.visible = false
|
||||||
scene.add_child(meshInstance)
|
scene.add_child(meshInstance)
|
||||||
rt.TempTriggerboxName[tb] = ReadString(reader)
|
rt.TempTriggerboxName[tb] = ReadString(reader)
|
||||||
meshInstance.name = rt.TempTriggerboxName[tb]
|
meshInstance.name = rt.TempTriggerboxName[tb]
|
||||||
|
@ -447,11 +452,11 @@ static func LoadRMesh(file: String, rt: RoomTemplate):
|
||||||
var g = int(lcolor[1]) / 255 * intensity
|
var g = int(lcolor[1]) / 255 * intensity
|
||||||
var b = int(lcolor[2]) / 255 * intensity
|
var b = int(lcolor[2]) / 255 * intensity
|
||||||
|
|
||||||
var pointlight = OmniLight3D.new()
|
#var pointlight = OmniLight3D.new()
|
||||||
pointlight.light_color = Color(r, g, b)
|
#pointlight.light_color = Color(r, g, b)
|
||||||
#scene.add_child(pointlight)
|
#scene.add_child(pointlight)
|
||||||
pointlight.position = Vector3(temp1, temp2, temp3)
|
#pointlight.position = Vector3(temp1, temp2, temp3)
|
||||||
#AddTempLight(rt, temp1,temp2,temp3, 2, range, r,g,b)
|
map.AddTempLight(rt, temp1, temp2, temp3, 2, range, r, g, b)
|
||||||
else:
|
else:
|
||||||
reader.readFloat()
|
reader.readFloat()
|
||||||
ReadString(reader)
|
ReadString(reader)
|
||||||
|
@ -468,18 +473,16 @@ static func LoadRMesh(file: String, rt: RoomTemplate):
|
||||||
var g = int(lcolor[1]) / 255 * intensity
|
var g = int(lcolor[1]) / 255 * intensity
|
||||||
var b = int(lcolor[2]) / 255 * intensity
|
var b = int(lcolor[2]) / 255 * intensity
|
||||||
|
|
||||||
#Local lt.LightTemplates = AddTempLight(rt, temp1,temp2,temp3, 2, range, r,g,b)
|
var lt: LightTemplate = map.AddTempLight(rt, temp1, temp2, temp3, 2, range, r, g, b)
|
||||||
var angles = ReadString(reader)
|
var angles = ReadString(reader).split(" ")
|
||||||
#pitch#=Piece(angles,1," ")
|
lt.pitch = angles[0].to_float()
|
||||||
#yaw#=Piece(angles,2," ")
|
lt.yaw = angles[1].to_float()
|
||||||
#lt\pitch = pitch
|
|
||||||
#lt\yaw = yaw
|
|
||||||
#
|
|
||||||
var innerconeangle = reader.readInt()
|
var innerconeangle = reader.readInt()
|
||||||
var outerconeangle = reader.readInt()
|
var outerconeangle = reader.readInt()
|
||||||
#print(str("spotlight. Range: ", range, ", lcolor: ", lcolor, ", intensity:", intensity, ", angles: ", angles, ", innerconeangle: ", innerconeangle, ", outerconeangle: ", outerconeangle))
|
#print(str("spotlight. Range: ", range, ", lcolor: ", lcolor, ", intensity:", intensity, ", angles: ", angles, ", innerconeangle: ", innerconeangle, ", outerconeangle: ", outerconeangle))
|
||||||
#lt\innerconeangle = ReadInt(f)
|
lt.innerconeangle = innerconeangle
|
||||||
#lt\outerconeangle = ReadInt(f)
|
lt.outerconeangle = outerconeangle
|
||||||
else:
|
else:
|
||||||
reader.readFloat()
|
reader.readFloat()
|
||||||
ReadString(reader)
|
ReadString(reader)
|
||||||
|
|
16
src/objects/LightTemplate.gd
Normal file
16
src/objects/LightTemplate.gd
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
class_name LightTemplate
|
||||||
|
|
||||||
|
var roomtemplate: RoomTemplate
|
||||||
|
var ltype: int
|
||||||
|
var x: float
|
||||||
|
var y: float
|
||||||
|
var z: float
|
||||||
|
var range: float
|
||||||
|
var r: int
|
||||||
|
var g: int
|
||||||
|
var b: int
|
||||||
|
|
||||||
|
var pitch: float
|
||||||
|
var yaw: float
|
||||||
|
var innerconeangle: float # maybe int??
|
||||||
|
var outerconeangle: float
|
1
src/objects/LightTemplate.gd.uid
Normal file
1
src/objects/LightTemplate.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://cjh18a6cybo2v
|
Loading…
Add table
Reference in a new issue