stuff
This commit is contained in:
145
scripts/modules/npc_student.gd
Normal file
145
scripts/modules/npc_student.gd
Normal file
@@ -0,0 +1,145 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user