2022-11-15 21:02:40 +07:00
|
|
|
class_name RWMaterial
|
|
|
|
extends RWChunk
|
|
|
|
|
|
|
|
var color: Color
|
|
|
|
var is_textured: bool
|
|
|
|
var texture: RWTexture
|
2022-11-17 18:46:38 +07:00
|
|
|
var material: StandardMaterial3D:
|
2022-11-15 21:29:53 +07:00
|
|
|
get:
|
|
|
|
var mat := StandardMaterial3D.new()
|
|
|
|
mat.albedo_color = color
|
|
|
|
if version > 0x30400:
|
|
|
|
mat.roughness = 1.0 - specular
|
|
|
|
return mat
|
2022-11-15 21:02:40 +07:00
|
|
|
|
|
|
|
var ambient: float
|
|
|
|
var specular: float
|
|
|
|
var diffuse: float
|
|
|
|
|
|
|
|
func _init(file: FileAccess):
|
|
|
|
super(file)
|
2022-11-19 04:19:09 +07:00
|
|
|
assert(type == ChunkType.MATERIAL)
|
2022-11-15 21:02:40 +07:00
|
|
|
RWChunk.new(file)
|
|
|
|
file.get_32()
|
|
|
|
color.r8 = file.get_8()
|
|
|
|
color.g8 = file.get_8()
|
|
|
|
color.b8 = file.get_8()
|
|
|
|
color.a8 = file.get_8()
|
|
|
|
file.get_32()
|
|
|
|
is_textured = file.get_32() > 0
|
|
|
|
if version > 0x30400:
|
|
|
|
ambient = file.get_float()
|
|
|
|
specular = file.get_float()
|
|
|
|
diffuse = file.get_float()
|
2022-11-15 21:29:53 +07:00
|
|
|
if is_textured:
|
|
|
|
texture = RWTexture.new(file)
|
2022-11-15 21:02:40 +07:00
|
|
|
skip(file)
|