Update (nature, engine changes)
This commit is contained in:
@@ -16,20 +16,22 @@ onready var male = preload("res://characters/vroid1-man.tscn")
|
||||
onready var face_ctrl = preload("res://scenes/face/head_comtrol.tscn")
|
||||
onready var modules = {
|
||||
# "physics": load("res://scripts/modules/character_physics.gd"),
|
||||
"cmdq": load("res://scripts/modules/cmdq.gd"),
|
||||
"marker": load("res://scripts/modules/npc_marker.gd"),
|
||||
"sacrifice": load("res://scripts/modules/npc_sacrifice.gd"),
|
||||
"nun": load("res://scripts/modules/npc_nun.gd"),
|
||||
"player": load("res://scripts/modules/player_controls.gd"),
|
||||
"player_clothes": load("res://scripts/modules/player_clothes.gd"),
|
||||
"hurtboxes": load("res://scripts/modules/character_hurtboxes.gd"),
|
||||
"student": load("res://scripts/modules/npc_student.gd")
|
||||
"cmdq": preload("res://scripts/modules/cmdq.gd"),
|
||||
"marker": preload("res://scripts/modules/npc_marker.gd"),
|
||||
"sacrifice": preload("res://scripts/modules/npc_sacrifice.gd"),
|
||||
"nun": preload("res://scripts/modules/npc_nun.gd"),
|
||||
"player": preload("res://scripts/modules/player_controls.gd"),
|
||||
"player_clothes": preload("res://scripts/modules/player_clothes.gd"),
|
||||
"hurtboxes": preload("res://scripts/modules/character_hurtboxes.gd"),
|
||||
"student": preload("res://scripts/modules/npc_student.gd")
|
||||
}
|
||||
|
||||
var face_data_path = "res://scenes/face/"
|
||||
var hair_data_path = "res://scenes/hair/"
|
||||
var female_faces = []
|
||||
var mesh_female_faces = {}
|
||||
var male_faces = []
|
||||
var mesh_male_faces = {}
|
||||
var female_hairs = []
|
||||
var male_hairs = []
|
||||
var hair_materials = []
|
||||
@@ -56,8 +58,11 @@ func _ready():
|
||||
match g:
|
||||
"female":
|
||||
female_faces.push_back(fp)
|
||||
mesh_female_faces[fp] = load(fp)
|
||||
|
||||
"male":
|
||||
male_faces.push_back(fp)
|
||||
mesh_male_faces[fp] = load(fp)
|
||||
for id in range(10000):
|
||||
var fp_m = face_data_path + "male-face" + str(id) + ".tscn"
|
||||
var fp_f = face_data_path + "female-face" + str(id) + ".tscn"
|
||||
@@ -66,8 +71,10 @@ func _ready():
|
||||
var mat = hair_data_path + "hair" + str(id) + ".tres"
|
||||
if data_fd.file_exists(fp_m):
|
||||
male_faces.push_back(fp_m)
|
||||
mesh_male_faces[fp_m] = load(fp_m)
|
||||
if data_fd.file_exists(fp_f):
|
||||
female_faces.push_back(fp_f)
|
||||
mesh_female_faces[fp_f] = load(fp_f)
|
||||
if data_fd.file_exists(hp_m):
|
||||
male_hairs.push_back(hp_m)
|
||||
if data_fd.file_exists(hp_f):
|
||||
@@ -153,7 +160,7 @@ func compose_kinematic_character(g, enable_modules = [], face = -1, hair = -1, h
|
||||
face = rnd.randi() % female_faces.size()
|
||||
if hair == -1:
|
||||
hair = rnd.randi() % female_hairs.size()
|
||||
face_scene = load(female_faces[face])
|
||||
face_scene = mesh_female_faces[female_faces[face]]
|
||||
hair_scene = load(female_hairs[hair])
|
||||
capsule.radius = 0.2
|
||||
capsule.height = 1.1
|
||||
@@ -172,7 +179,7 @@ func compose_kinematic_character(g, enable_modules = [], face = -1, hair = -1, h
|
||||
face = rnd.randi() % male_faces.size()
|
||||
if hair == -1:
|
||||
hair = rnd.randi() % male_hairs.size()
|
||||
face_scene = load(male_faces[face])
|
||||
face_scene = mesh_male_faces[male_faces[face]]
|
||||
hair_scene = load(male_hairs[hair])
|
||||
capsule.radius = 0.3
|
||||
capsule.height = 1.2
|
||||
|
||||
@@ -80,6 +80,8 @@ func setup_town(site):
|
||||
center += p
|
||||
center /= poly.size()
|
||||
center.y = height
|
||||
var infl = RoadsData.get_influence_cached(center.x, center.y, 256)
|
||||
center.y = infl.y
|
||||
var radial_points = RoadsData.get_site_radial_points(site, 32.0, 64.0)
|
||||
var max_r = 0.0
|
||||
for p in range(radial_points.size()):
|
||||
@@ -89,18 +91,26 @@ func setup_town(site):
|
||||
max_r = dst
|
||||
for p in range(radial_points.size()):
|
||||
var ep = radial_points[p]
|
||||
var miff = RoadsData.get_influence_cached(ep.x, ep.z, 256.0)
|
||||
ep.y = center.y
|
||||
var d = (center - ep).normalized()
|
||||
assert(d.length_squared() > 0)
|
||||
var dst = ep.distance_to(center)
|
||||
print(dst)
|
||||
if dst < 64.0 + 12 + 8 + 4:
|
||||
continue
|
||||
var step = 16.0
|
||||
var pstart = ep
|
||||
var step = 32.0
|
||||
var pstart = ep + d * 32.0
|
||||
dst -= 32.0
|
||||
while dst > 0.0:
|
||||
var ok = true
|
||||
if !Geometry.is_point_in_polygon(Vector2(pstart.x, pstart.z), poly2):
|
||||
miff = RoadsData.get_influence_cached(pstart.x, pstart.z, 256.0)
|
||||
if miff.x > 0.0:
|
||||
ok = false
|
||||
if ok:
|
||||
pstart.y = miff.y
|
||||
if !Geometry.is_point_in_polygon(Vector2(pstart.x, pstart.z), poly2):
|
||||
ok = false
|
||||
if ok:
|
||||
for b in aabbs:
|
||||
if b.has_point(pstart):
|
||||
@@ -133,7 +143,9 @@ func setup_first_town():
|
||||
center += p
|
||||
center /= poly.size()
|
||||
center.y = height
|
||||
# grid.build(border2, center)
|
||||
var infl = RoadsData.get_influence_cached(center.x, center.z, 256)
|
||||
center.y = infl.y
|
||||
print("first town center: ", center)
|
||||
var radial_points = RoadsData.get_site_radial_points(0, 32.0, 64.0)
|
||||
var max_r = 0.0
|
||||
for p in range(radial_points.size()):
|
||||
@@ -161,18 +173,26 @@ func setup_first_town():
|
||||
|
||||
for p in range(radial_points.size()):
|
||||
var ep = radial_points[p]
|
||||
var miff = RoadsData.get_influence_cached(ep.x, ep.z, 256.0)
|
||||
ep.y = center.y
|
||||
var d = (center - ep).normalized()
|
||||
assert(d.length_squared() > 0)
|
||||
var dst = ep.distance_to(center)
|
||||
print(dst)
|
||||
if dst < 64.0 + 12 + 8 + 4:
|
||||
continue
|
||||
var step = 16.0
|
||||
var pstart = ep
|
||||
var step = 32.0
|
||||
var pstart = ep + d * 32.0
|
||||
dst -= 32.0
|
||||
while dst > 0.0:
|
||||
var ok = true
|
||||
if !Geometry.is_point_in_polygon(Vector2(pstart.x, pstart.z), poly2):
|
||||
miff = RoadsData.get_influence_cached(pstart.x, pstart.z, 256.0)
|
||||
if miff.x > 0.0:
|
||||
ok = false
|
||||
if ok:
|
||||
pstart.y = miff.y
|
||||
if !Geometry.is_point_in_polygon(Vector2(pstart.x, pstart.z), poly2):
|
||||
ok = false
|
||||
if ok:
|
||||
for b in aabbs:
|
||||
if b.has_point(pstart):
|
||||
|
||||
Reference in New Issue
Block a user