Files
academy2-game/scripts/modules/npc_student.gd
Segey Lapin d6c8a24f5a stuff
2021-10-26 21:52:15 +03:00

146 lines
4.0 KiB
GDScript3

extends Node
# Declare member variables here. Examples:
# var a = 2
# var b = "text"
# Called when the node enters the scene tree for the first time.
var root
var skel
var hair_skel
var garments_female_lingerie = ["female-panties1", "female-bra1"]
var garments_head_female = []
var garments_male_lingerie = ["male-panties1"]
var garments_head_male = []
var garments_female_main = ["female-shirt_skirt1", "female-skirt1"]
var garments_male_main = ["male-pants1", "male-shirt1", "male-shoes1"]
var basedir = "res://scenes/clothes/"
var material_female = preload("res://scenes/clothes/nun-clothes.material")
var material_male = preload("res://scenes/clothes/clothes-male.material")
#var tween: Tween
#enum {
# IDLE,
# WALKING,
# SLEEPING
#}
#var state = SLEEPING
func _ready():
name = "student_ai"
root = get_parent()
root.add_to_group("students")
root.add_to_group("student")
# tween = Tween.new()
# tween.playback_process_mode = Tween.TWEEN_PROCESS_PHYSICS
# tween.process_priority = 30
# add_child(tween)
# call_deferred("setup_markers")
var character_data = root.get_meta("character_data")
if character_data.sex == "female":
var g = garments_female_lingerie
var h = []
g += garments_female_main
h += garments_head_female
characters.call_deferred("setup_garments", root, g, h, material_female)
else:
var g = garments_male_lingerie
var h = []
g += garments_male_main
h += garments_head_male
characters.call_deferred("setup_garments", root, g, h, material_male)
#func setup_markers():
# var cmdq = []
# if root.has_meta("cmdqueue"):
# cmdq = root.get_meta("cmdqueue")
# if root.has_meta("saved_anim_state"):
# var st = root.get_meta("saved_anim_state")
# cmdq.push_back(["anim_state", st])
# root.set_meta("cmdqueue", cmdq)
# root.remove_meta("saved_anim_state")
# if st == "sleeping":
# state = SLEEPING
# else:
# state = IDLE
# elif scenario.period > scenario.EARLY_MORNING:
# cmdq.push_back(["anim_state", "locomotion"])
# root.set_meta("cmdqueue", cmdq)
# else:
# cmdq.push_back(["anim_state", "sleeping"])
# root.set_meta("cmdqueue", cmdq)
# state = SLEEPING
#var state_changed = 0.0
#func set_basis_dir(dir: Vector3):
# var xdir: Vector3 = dir
# xdir.y = 0
# var d0 = xdir.cross(Vector3.UP)
# var d1 = Vector3.UP
# var d2 = xdir
# var basis = Basis(d0, d1, -d2)
# var orientation = root.get_meta("orientation")
# orientation.basis = basis
# root.set_meta("orientation", orientation)
#func _process(delta):
# if !skel:
# skel = root.get_meta("skeleton")
# var space: PhysicsDirectSpaceState = root.get_world().get_direct_space_state()
# var p = get_viewport().get_camera().get_meta("player").global_transform
# var d = p.origin.distance_to(root.global_transform.origin)
# var px = p.origin
# px.y = root.global_transform.origin.y
# var pdir = px - root.global_transform.origin
# var fdir = -root.global_transform.basis[2]
# fdir.y = 0
# pdir.y = 0
# pdir = pdir.normalized()
# fdir = fdir.normalized()
# var cmdq = []
# if root.has_meta("cmdqueue"):
# cmdq = root.get_meta("cmdqueue")
# state_changed -= delta
# state_changed = clamp(state_changed, 0.0, 10.0)
# match state:
# SLEEPING:
# if scenario.period > scenario.EARLY_MORNING:
# state = WALKING
# cmdq.push_back(["anim_state", "locomotion"])
# else:
# cmdq.push_back(["anim_state", "sleeping"])
# root.set_meta("cmdqueue", cmdq)
# WALKING:
# pass
# IDLE:
# pass
## cmdq.push_back(["anim_state", "locomotion"])
## root.set_meta("cmdqueue", cmdq)
#func switch_state(root, st):
# print("seitch state: ", state, " ", st)
# var cmdq = []
# if state == st:
# return
# if root.has_meta("cmdqueue"):
# cmdq = root.get_meta("cmdqueue")
# match state:
# IDLE:
# pass
# SLEEPING:
# pass
# WALKING:
# pass
# match st:
# IDLE:
# cmdq.push_back(["anim_state", "locomotion"])
# SLEEPING:
# cmdq.push_back(["anim_state", "sleeping"])
# WALKING:
# cmdq.push_back(["anim_state", "locomotion"])
# root.set_meta("cmdqueue", cmdq)
# state = st
#func command(cmd):
# print(name, " command: ", cmd)
# match cmd[0]:
# "wakeup":
# switch_state(get_parent(), WALKING)