Appearance
类
gdscript
# notify.gd
class_name Notify
extends BaseObject
var info:String
var info_color:Color
var sub_info:String
var sub_info_color:Color
var duration:int
func _init(info_p:String,info_color_p:= Color.WHITE,sub_info_p:="",sub_info_color_p:=Color.ORANGE,duration_p:=3):
info = info_p
info_color = info_color_p
sub_info = sub_info_p
sub_info_color = sub_info_color_p
duration = duration_p继承的类
gdscript
class_name BaseObject
const uuid_util = preload('res://addons/uuid/uuid.gd')
var id
var create_dt
func _init():
self.id = uuid_util.v4()
self.create_dt = Tools.get_now()
func get_proprerty_dic():
var d = inst_to_dict(self)
for key:String in d.keys():
if key.begins_with("@"):
d.erase(key)
return d
func to_json(ignore_system_p:=false ):
var dic = get_proprerty_dic()
if ignore_system_p:
dic.erase("id")
dic.erase("create_dt")
return JSON.stringify(dic)
func instance_from_json(json_string:String):
var json = JSON.new()
var error = json.parse(json_string)
if error == OK:
var d = inst_to_dict(self)
d.merge(json.data,true)
return dict_to_inst(d)
else:
print("JSON Parse Error: ", json.get_error_message(), " in ", json_string, " at line ", json.get_error_line())
return null
func get_class_name() -> String:
return "unset"构造并使用
gdcript
var notidy = Notify.new("ce")
print("notidy",notidy.to_json(true))