Large update with mostly rewritten character subsystem
This commit is contained in:
9
Jenkinsfile
vendored
9
Jenkinsfile
vendored
@@ -23,7 +23,8 @@ node('docker && ubuntu-16.04') {
|
||||
if (params.DOWNLOAD_TEMPLATES) {
|
||||
sh '''#!/bin/sh
|
||||
rm -f godot-templates.tar.gz
|
||||
wget -c https://github.com/slapin/godot-templates-build/releases/download/2019_31_0802_1959/godot-templates.tar.gz
|
||||
curl -s https://api.github.com/repos/slapin/godot-templates-build/releases/latest|grep browser_download_url|cut -d : -f2-|cut -d '"' -f 2|wget -i -
|
||||
# wget -c https://github.com/slapin/godot-templates-build/releases/download/2019_31_0802_1959/godot-templates.tar.gz
|
||||
'''
|
||||
}
|
||||
sh '''#!/bin/sh
|
||||
@@ -97,10 +98,16 @@ node('docker && ubuntu-16.04') {
|
||||
ls -l
|
||||
'''
|
||||
}
|
||||
stage("artifacts") {
|
||||
archiveArtifacts artifacts: "proto2-html5.zip", onlyIfSuccessful: true
|
||||
archiveArtifacts artifacts: "BallKickers-windows.zip", onlyIfSuccessful: true
|
||||
archiveArtifacts artifacts: "BallKickers-linux.zip", onlyIfSuccessful: true
|
||||
}
|
||||
stage("itch.io") {
|
||||
withCredentials([string(credentialsId: 'itchio_token', variable: 'itchio_token')]) {
|
||||
withEnv(["BUTLER_API_KEY=$itchio_token"]) {
|
||||
sh '''#!/bin/sh
|
||||
exit 0
|
||||
export PATH=$PATH:$(pwd)/butler
|
||||
butler push proto2-html5.zip slapin/ball-kickers:html
|
||||
H=$?
|
||||
|
||||
@@ -27,14 +27,14 @@ func add_player(team: int, pl: Dictionary):
|
||||
_teams[team] = [pl]
|
||||
else:
|
||||
_teams[team].push_back(pl)
|
||||
assert pl != null
|
||||
assert(pl != null)
|
||||
ch2team[pl.scene] = team
|
||||
func add_cheer(team: int, ch: Dictionary):
|
||||
if !_cheers.has(team):
|
||||
_cheers[team] = [ch]
|
||||
else:
|
||||
_cheers[team].push_back(ch)
|
||||
assert ch != null
|
||||
assert(ch != null)
|
||||
ch2team[ch.scene] = team
|
||||
func add_cheer_game_location(team: int, loc: Vector2):
|
||||
if !_cheer_locations.has(team):
|
||||
@@ -130,7 +130,7 @@ func catch_ball(pl):
|
||||
_ball_carrier = pl
|
||||
var max_imp = 500.0
|
||||
func drop_ball(pl):
|
||||
assert _main != null
|
||||
assert(_main != null)
|
||||
_ball_instance.kinematic = false
|
||||
_ball_instance.new_parent = _main
|
||||
_ball_instance.update = true
|
||||
@@ -226,7 +226,7 @@ func _process(delta):
|
||||
STATE_RUNNING:
|
||||
for c in _teams.keys():
|
||||
for pl in _teams[c]:
|
||||
assert pl.scene != null
|
||||
assert(pl.scene != null)
|
||||
if !_ball_carrier || (pl != _ball_carrier && _ball_team != c):
|
||||
var velocity = striker(pl, delta)
|
||||
velocity = pl.scene.velocity.linear_interpolate(velocity, 0.3 * delta)
|
||||
|
||||
@@ -35,14 +35,14 @@ func add_player(team: int, pl: Dictionary):
|
||||
_teams[team] = [pl]
|
||||
else:
|
||||
_teams[team].push_back(pl)
|
||||
assert pl != null
|
||||
assert(pl != null)
|
||||
ch2team[pl.scene] = team
|
||||
func add_cheer(team: int, ch: Dictionary):
|
||||
if !_cheers.has(team):
|
||||
_cheers[team] = [ch]
|
||||
else:
|
||||
_cheers[team].push_back(ch)
|
||||
assert ch != null
|
||||
assert(ch != null)
|
||||
ch2team[ch.scene] = team
|
||||
func add_cheer_game_location(team: int, loc: Vector3):
|
||||
if !_cheer_locations.has(team):
|
||||
@@ -95,18 +95,18 @@ func start_game():
|
||||
_state = STATE_START
|
||||
for t in _teams.keys():
|
||||
for ch in _teams[t]:
|
||||
assert ch != null
|
||||
assert(ch != null)
|
||||
print(ch)
|
||||
assert ch.scene != null
|
||||
assert(ch.scene != null)
|
||||
print("start: ", _team_start[t])
|
||||
ch.scene.walkto(_team_start[t] + Vector3(randf() * 2.0 - 1.0, 0.0, randf() * 2.0 - 1.0), 1.0 + ch.speed + randf() * ch.speed * 0.5)
|
||||
start_timeout = 10.0
|
||||
var loc = 0
|
||||
for t in _cheers.keys():
|
||||
for ch in _cheers[t]:
|
||||
assert ch != null
|
||||
assert(ch != null)
|
||||
print(ch)
|
||||
assert ch.scene != null
|
||||
assert(ch.scene != null)
|
||||
ch.scene.walkto(_cheer_locations[t][loc % _cheer_locations[t].size()], 1.0 + ch.speed + randf() * ch.speed * 0.5)
|
||||
loc += 1
|
||||
for t in _teams.keys():
|
||||
|
||||
BIN
proto2/assets/blender-2.80/body-uvs.png
Normal file
BIN
proto2/assets/blender-2.80/body-uvs.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 747 KiB |
BIN
proto2/assets/blender-2.80/clothes.blend
Normal file
BIN
proto2/assets/blender-2.80/clothes.blend
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
4
proto2/assets/blender-2.80/female_hair.json
Normal file
4
proto2/assets/blender-2.80/female_hair.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"outpath": "characters/hair",
|
||||
"generate_external_material": true
|
||||
}
|
||||
BIN
proto2/assets/blender-2.80/hair-card.blend
Normal file
BIN
proto2/assets/blender-2.80/hair-card.blend
Normal file
Binary file not shown.
BIN
proto2/assets/blender-2.80/hair.blend
Normal file
BIN
proto2/assets/blender-2.80/hair.blend
Normal file
Binary file not shown.
BIN
proto2/assets/blender-2.80/hair2.blend
Normal file
BIN
proto2/assets/blender-2.80/hair2.blend
Normal file
Binary file not shown.
BIN
proto2/assets/blender-2.80/hair3.blend
Normal file
BIN
proto2/assets/blender-2.80/hair3.blend
Normal file
Binary file not shown.
BIN
proto2/assets/blender-2.80/hair4.blend
Normal file
BIN
proto2/assets/blender-2.80/hair4.blend
Normal file
Binary file not shown.
BIN
proto2/assets/blender-2.80/haircard1.png
Normal file
BIN
proto2/assets/blender-2.80/haircard1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.9 MiB |
BIN
proto2/assets/blender-2.80/haircard2.png
Normal file
BIN
proto2/assets/blender-2.80/haircard2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.0 MiB |
Binary file not shown.
4
proto2/assets/blender-2.80/male_hair.json
Normal file
4
proto2/assets/blender-2.80/male_hair.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"outpath": "characters/hair",
|
||||
"generate_external_material": true
|
||||
}
|
||||
BIN
proto2/assets/blender-2.80/robe_helper-uvs.png
Normal file
BIN
proto2/assets/blender-2.80/robe_helper-uvs.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 206 KiB |
@@ -1,17 +1,198 @@
|
||||
extends Node
|
||||
|
||||
# Declare member variables here. Examples:
|
||||
# var a = 2
|
||||
# var b = "text"
|
||||
#var accessory_data = {}
|
||||
|
||||
#var slots = ["body", "top", "panties", "shirt", "pants"]
|
||||
#var slots_female = ["body", "top", "panties"]
|
||||
#var slots_male = ["body"]
|
||||
#var helpers = {
|
||||
# "body": "base",
|
||||
# "top": "base",
|
||||
# "panties": "base",
|
||||
# "shirt": "tights",
|
||||
# "pants": "tights"
|
||||
# }
|
||||
|
||||
#var data_male = {}
|
||||
#var data_female = {}
|
||||
|
||||
#var characters = [load("res://characters/male_2018.tscn"), load("res://characters/female_2018.tscn")]
|
||||
#var character_data = []
|
||||
|
||||
#func load_accessory_data():
|
||||
# var fd = File.new()
|
||||
# fd.open("res://characters/accessory.json", File.READ)
|
||||
# var confs = fd.get_as_text()
|
||||
# var json = JSON.parse(confs)
|
||||
# accessory_data = json.result
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
var characters = [load("res://characters/male_2018.tscn"), load("res://characters/female_2018.tscn")]
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
# var cha_male: CharacterModifierSet
|
||||
# var cha_female: CharacterModifierSet
|
||||
# var base_male = characters[0].instance()
|
||||
# var base_female = characters[1].instance()
|
||||
# var fd = File.new()
|
||||
## fd.open("characters/blendmaps.bin", File.READ);
|
||||
# cha_male = CharacterModifierSet.new()
|
||||
# character_data.push_back(cha_male)
|
||||
# cha_female = CharacterModifierSet.new()
|
||||
# character_data.push_back(cha_female)
|
||||
# cha_female.set_base_name("body")
|
||||
# cha_male.set_base_name("body")
|
||||
# for e in slots:
|
||||
# print(e)
|
||||
# cha_female.add_slot(e, helpers[e], 1)
|
||||
# cha_male.add_slot(e, helpers[e], 1)
|
||||
# cha_female.add_mesh_scene(characters[1])
|
||||
# cha_male.add_mesh_scene(characters[0])
|
||||
# cha_female.process()
|
||||
# cha_male.process()
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
#func _process(delta):
|
||||
# pass
|
||||
#func _physics_process(delta):
|
||||
# for obj in get_tree().get_nodes_in_group("characters"):
|
||||
# pass
|
||||
### cha_male.add_bone_modifier("head_scale", base_male, "head", Transform().scaled(Vector3(1.3, 1.3, 1.3)))
|
||||
### cha_female.add_bone_modifier("head_scale", base_female, "head", Transform().scaled(Vector3(1.3, 1.3, 1.3)))
|
||||
### cha_male.add_bone_modifier("head_up", base_male, "head", Transform().translated(Vector3(0.0, 0.1, 0.0)))
|
||||
### cha_female.add_bone_modifier("head_up", base_female, "head", Transform().translated(Vector3(0.0, 0.1, 0.0)))
|
||||
### # cha_male.add_bone_modifier("shoulder_l_rot", base_male, "shoulder01_L", Transform().rotated(Vector3(1, 0, 0), 95 * PI / 360.0))
|
||||
### # cha_female.add_bone_modifier("shoulder_l_rot", base_female, "shoulder01_L", Transform().rotated(Vector3(1, 0, 0), 95 * PI / 360.0))
|
||||
### cha_male.add_bone_modifier("height", base_male, "pelvis", Transform().scaled(Vector3(1.2, 1.2, 1.2)))
|
||||
### cha_female.add_bone_modifier("height", base_female, "pelvis", Transform().scaled(Vector3(1.2, 1.2, 1.2)))
|
||||
### # cha_male.add_bone_modifier_pair("shoulder", base_male,
|
||||
### # ["shoulder01_L", Transform().rotated(Vector3(1, 0, 0), 95 * PI / 360.0)],
|
||||
### # ["shoulder01_R", Transform().rotated(Vector3(1, 0, 0), 95 * PI / 360.0)])
|
||||
### # cha_female.add_bone_modifier_pair("shoulder", base_female,
|
||||
### # ["shoulder01_L", Transform().rotated(Vector3(1, 0, 0), 95 * PI / 360.0)],
|
||||
### # ["shoulder01_R", Transform().rotated(Vector3(1, 0, 0), 95 * PI / 360.0)])
|
||||
### cha_male.add_bone_modifier_group("mouth_up", base_male,
|
||||
### PoolStringArray(["special01", "special04", "levator04_L", "levator04_R"]),
|
||||
### [Transform().translated(Vector3(0.0, -0.004, 0.0)),
|
||||
### Transform().translated(Vector3(0.0, 0.008, 0.0)),
|
||||
### Transform().translated(Vector3(0.016, -0.019, 0.0)),
|
||||
### Transform().translated(Vector3(-0.016, -0.019, 0.0))
|
||||
### ])
|
||||
### cha_female.add_bone_modifier_group("mouth_up", base_female,
|
||||
### PoolStringArray(["special01", "special04", "levator04_L", "levator04_R"]),
|
||||
### [Transform().translated(Vector3(0.0, -0.004, 0.0)),
|
||||
### Transform().translated(Vector3(0.0, 0.008, 0.0)),
|
||||
### Transform().translated(Vector3(0.016, -0.019, 0.0)),
|
||||
### Transform().translated(Vector3(-0.016, -0.019, 0.0))
|
||||
### ])
|
||||
### cha_male.add_bone_modifier_group("eyes_up", base_male,
|
||||
### PoolStringArray(["orbicularis03_L", "orbicularis04_L", "eye_L", "eye_tracker.L",
|
||||
### "orbicularis03_R", "orbicularis04_R", "eye_R", "eye_tracker.R"]),
|
||||
### [Transform().translated(Vector3(0.0, 0.002, 0.004)),
|
||||
### Transform().translated(Vector3(0.0, 0.002, 0.004)),
|
||||
### Transform().translated(Vector3(0.0, 0.002, 0.004)),
|
||||
### Transform().translated(Vector3(0.0, 0.002, 0.004)),
|
||||
### Transform().translated(Vector3(0.0, 0.002, 0.004)),
|
||||
### Transform().translated(Vector3(0.0, 0.002, 0.004)),
|
||||
### Transform().translated(Vector3(0.0, 0.002, 0.004)),
|
||||
### Transform().translated(Vector3(0.0, 0.002, 0.004))])
|
||||
### cha_female.add_bone_modifier_group("eyes_up", base_female,
|
||||
### PoolStringArray(["orbicularis03_L", "orbicularis04_L", "eye_L",
|
||||
### "orbicularis03_R", "orbicularis04_R", "eye_R"]),
|
||||
### [Transform().translated(Vector3(0.0, 0.002, 0.004)),
|
||||
### Transform().translated(Vector3(0.0, 0.002, 0.004)),
|
||||
### Transform().translated(Vector3(0.0, 0.002, 0.004)),
|
||||
### Transform().translated(Vector3(0.0, 0.002, 0.004)),
|
||||
### Transform().translated(Vector3(0.0, 0.002, 0.004)),
|
||||
### Transform().translated(Vector3(0.0, 0.002, 0.004))])
|
||||
### cha_male.add_bone_modifier_group("eyebrows_up", base_male,
|
||||
### PoolStringArray(["temporalis01_L", "temporalis01_R"]),
|
||||
### [Transform().translated(Vector3(0.0, 0.015, 0.0)),
|
||||
### Transform().translated(Vector3(0.0, 0.015, 0.0))])
|
||||
### cha_female.add_bone_modifier_group("eyebrows_up", base_female,
|
||||
### PoolStringArray(["temporalis01_L", "temporalis01_R"]),
|
||||
### [Transform().translated(Vector3(0.0, 0.015, 0.0)),
|
||||
### Transform().translated(Vector3(0.0, 0.015, 0.0))])
|
||||
### cha_male.add_bone_modifier_group("eyebrows_rotate1", base_male,
|
||||
### PoolStringArray(["oculi02_L", "oculi02_R"]),
|
||||
### [Transform().rotated(Vector3(0, 1, 0), -PI/14.0),
|
||||
### Transform().rotated(Vector3(0, 1, 0), PI/14.0)])
|
||||
### cha_female.add_bone_modifier_group("eyebrows_rotate1", base_female,
|
||||
### PoolStringArray(["oculi02_L", "oculi02_R"]),
|
||||
### [Transform().rotated(Vector3(0, 1, 0), -PI/14.0),
|
||||
### Transform().rotated(Vector3(0, 1, 0), PI/14.0)])
|
||||
### cha_male.add_bone_modifier_group("eyebrows_rotate2", base_male,
|
||||
### PoolStringArray(["oculi01_L", "oculi01_R"]),
|
||||
### [Transform().rotated(Vector3(0, 1, 0), -PI/4.0),
|
||||
### Transform().rotated(Vector3(0, 1, 0), PI/4.0)])
|
||||
### cha_female.add_bone_modifier_group("eyebrows_rotate2", base_female,
|
||||
### PoolStringArray(["oculi01_L", "oculi01_R"]),
|
||||
### [Transform().rotated(Vector3(0, 1, 0), -PI/4.0),
|
||||
### Transform().rotated(Vector3(0, 1, 0), PI/4.0)])
|
||||
# base_male.queue_free()
|
||||
# base_female.queue_free()
|
||||
# load_accessory_data()
|
||||
CharacterGenderList.config()
|
||||
#var root_scene: Node
|
||||
|
||||
#func set_root_scene(sc: Node):
|
||||
# root_scene = sc
|
||||
|
||||
var genders = ["male", "female"]
|
||||
|
||||
#func select_front_hair(ch: Node, value: float):
|
||||
# var cha = ch.get_meta("mod")
|
||||
# var id = ch.get_meta("data_id")
|
||||
# var front_list = cha.get_accessory_list(genders[id], "hair", "front_hair")
|
||||
# var num = int(front_list.size() * value)
|
||||
# num = clamp(num, 0, front_list.size() - 1)
|
||||
# character_data[id].set_accessory(ch, "front_hair", genders[id], "hair", front_list[num])
|
||||
# ch.set_meta("front_hair", front_list[num])
|
||||
#
|
||||
#func select_back_hair(ch: Node, value: float):
|
||||
# var cha = ch.get_meta("mod")
|
||||
# var id = ch.get_meta("data_id")
|
||||
# var back_list = cha.get_accessory_list(genders[id], "hair", "back_hair")
|
||||
# var num = int(front_list.size() * value)
|
||||
# num = clamp(num, 0, front_list.size() - 1)
|
||||
# character_data[id].set_accessory(ch, "front_hair", genders[id], "hair", front_list[num])
|
||||
# ch.set_meta("back_hair", "back_hair1")
|
||||
|
||||
func spawn_character(id, xform):
|
||||
# var ch = character_data[id].spawn()
|
||||
var ch = CharacterInstanceList.create(genders[id], xform, {})
|
||||
# root_scene.add_child(ch)
|
||||
# ch.transform = xform
|
||||
ch.set_meta("data_id", id)
|
||||
# character_data[id].hide_slot(ch, "hair")
|
||||
# character_data[id].set_accessory(ch, "front_hair", genders[id], "hair", "front_hair1")
|
||||
# character_data[id].set_accessory(ch, "back_hair", genders[id], "hair", "back_hair1")
|
||||
# ch.set_meta("front_hair", "front_hair1")
|
||||
# ch.set_meta("back_hair", "back_hair1")
|
||||
return ch
|
||||
|
||||
func get_modifier_list(ch: Node):
|
||||
# var cha = ch.get_meta("mod")
|
||||
# return cha.get_modifier_list()
|
||||
return CharacterInstanceList.get_base_modifier_list()
|
||||
|
||||
func get_modifier_value(ch: Node, mod_id):
|
||||
# var cha = ch.get_meta("mod")
|
||||
# var mesh_id = ch.get_meta("mesh_id")
|
||||
# return cha.get_modifier_value(mesh_id, mod_id)
|
||||
return CharacterInstanceList.get_mod_value(ch, mod_id)
|
||||
|
||||
func set_modifier_value(ch: Node, mod_id, value):
|
||||
# var cha = ch.get_meta("mod")
|
||||
# var mesh_id = ch.get_meta("mesh_id")
|
||||
# cha.set_modifier_value(mesh_id, mod_id, value)
|
||||
CharacterInstanceList.set_mod_value(ch, mod_id, value)
|
||||
|
||||
#func modify(ch: Node):
|
||||
# var cha = ch.get_meta("mod")
|
||||
# cha.modify(ch)
|
||||
func update():
|
||||
CharacterInstanceList.update()
|
||||
|
||||
func remove(ch):
|
||||
# var cha = ch.get_meta("mod")
|
||||
# cha.remove(ch)
|
||||
CharacterInstanceList.remove(ch)
|
||||
|
||||
#func spawn_accessory(slot: MeshInstance, gender: String, atype: String, aname: String):
|
||||
# var mesh: ArrayMesh = load(accessory_data[gender][atype][aname].path)
|
||||
# for c in range(mesh.get_surface_count()):
|
||||
# var mat: SpatialMaterial = load(accessory_data[gender][atype][aname].materials[c].path)
|
||||
# mesh.surface_set_material(c, mat)
|
||||
# slot.mesh = mesh
|
||||
|
||||
@@ -101,10 +101,10 @@ func _unhandled_input(event):
|
||||
if event.button_mask & BUTTON_MASK_LEFT:
|
||||
click2d = event.position
|
||||
click2d_update = true
|
||||
print("click!")
|
||||
# print("click!")
|
||||
func _physics_process(delta):
|
||||
if click2d_update:
|
||||
print("click! 2")
|
||||
# print("click! 2")
|
||||
if camera:
|
||||
var world : = camera.get_world()
|
||||
var space := world.direct_space_state
|
||||
@@ -115,7 +115,7 @@ func _physics_process(delta):
|
||||
if result.has("position"):
|
||||
click3d = result.position
|
||||
click3d_update = true
|
||||
print("click! 3")
|
||||
# print("click! 3")
|
||||
emit_signal("user_click", click3d)
|
||||
click2d_update = false
|
||||
|
||||
|
||||
@@ -511,7 +511,7 @@ func convert_vertices():
|
||||
for e in range(vertices.size()):
|
||||
vertices[e]._neighbors = []
|
||||
for h in vertices[e].neighbors:
|
||||
assert h
|
||||
assert(h)
|
||||
# print(pos2vertex[h.pos])
|
||||
vertices[e]._neighbors.push_back(pos2vertex[h.pos]._index)
|
||||
func has_neighbor(v, n):
|
||||
@@ -581,7 +581,7 @@ func remove_neighbor(v, n):
|
||||
# var triangle = [e1, e2, e3]
|
||||
# triangles.push_back(triangle)
|
||||
func sort_edges(edge_data: PoolIntArray) -> PoolIntArray:
|
||||
assert edge_data.size() > 0
|
||||
assert(edge_data.size() > 0)
|
||||
var inb = Array(edge_data)
|
||||
var cur = -1
|
||||
var cur_p = -1
|
||||
@@ -613,7 +613,7 @@ func sort_edges(edge_data: PoolIntArray) -> PoolIntArray:
|
||||
# for p in edge_data:
|
||||
# print(p, ": ", edges[p].p1, " - ", edges[p].p2)
|
||||
# print(ret.size(), " ", edge_data.size(), " ", edge_data, " -> ", ret)
|
||||
assert ret.size() > 0 && ret.size() == edge_data.size()
|
||||
assert(ret.size() > 0 && ret.size() == edge_data.size())
|
||||
return ret
|
||||
func edges2points(edge_data):
|
||||
var ret = {}
|
||||
@@ -631,7 +631,7 @@ func edges2points(edge_data):
|
||||
"road": edges[e].road
|
||||
})
|
||||
idx += 1
|
||||
assert ret.points.size() > 0 && ret.points.size() == edge_data.size()
|
||||
assert(ret.points.size() > 0 && ret.points.size() == edge_data.size())
|
||||
return ret
|
||||
#func build_polygons():
|
||||
# print("triangulation: ", triangulation.size())
|
||||
@@ -1060,8 +1060,8 @@ class VertexData:
|
||||
data = v
|
||||
_road_width = road_width
|
||||
_sidewalk_width = sidewalk_width
|
||||
assert v.has("_index")
|
||||
assert v.has("_neighbors")
|
||||
assert(v.has("_index"))
|
||||
assert(v.has("_neighbors"))
|
||||
func angle_sort_helper(a, b):
|
||||
var v1: Vector2 = a[1] - a[0]
|
||||
var v2: Vector2 = b[1] - b[0]
|
||||
@@ -1069,7 +1069,7 @@ class VertexData:
|
||||
return true
|
||||
return false
|
||||
func get_wedges(vertices: Array) -> Array:
|
||||
assert data
|
||||
assert(data)
|
||||
var edges = []
|
||||
for id in data._neighbors:
|
||||
edges.push_back([data.pos, vertices[id].pos, data._index, id])
|
||||
|
||||
@@ -20,6 +20,11 @@ var quests : = []
|
||||
var team_train_count : = 0
|
||||
# warning-ignore:unused_class_variable
|
||||
var arrow: Spatial
|
||||
# warning-ignore:unused_class_variable
|
||||
var next_scene: String
|
||||
var player_visual = {
|
||||
"gender": "male"
|
||||
}
|
||||
|
||||
func room_event(ev: String):
|
||||
if current_room:
|
||||
|
||||
332
proto2/characters/accessory.json
Normal file
332
proto2/characters/accessory.json
Normal file
@@ -0,0 +1,332 @@
|
||||
{
|
||||
"female": {
|
||||
"body": {
|
||||
"body_default": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "Material",
|
||||
"path": "res://characters/accessory/female/body/Material.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/female/body/body_default.mesh"
|
||||
}
|
||||
},
|
||||
"eyebrows": {
|
||||
"eyebrows_default": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "Material",
|
||||
"path": "res://characters/accessory/female/eyebrows/Material.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/female/eyebrows/eyebrows_default.mesh"
|
||||
}
|
||||
},
|
||||
"eyelashes": {
|
||||
"eyelashes_default": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "Material",
|
||||
"path": "res://characters/accessory/female/eyelashes/Material.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/female/eyelashes/eyelashes_default.mesh"
|
||||
}
|
||||
},
|
||||
"eyes": {
|
||||
"eyes_default": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "Material",
|
||||
"path": "res://characters/accessory/female/eyes/Material.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/female/eyes/eyes_default.mesh"
|
||||
}
|
||||
},
|
||||
"fingernails": {
|
||||
"fingernails_default": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "Material",
|
||||
"path": "res://characters/accessory/female/fingernails/Material.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/female/fingernails/fingernails_default.mesh"
|
||||
}
|
||||
},
|
||||
"hair": {
|
||||
"back_hair1": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "haircard1",
|
||||
"path": "res://characters/accessory/female/hair/haircard1.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/female/hair/back_hair1.mesh"
|
||||
},
|
||||
"back_hair2": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "haircard1",
|
||||
"path": "res://characters/accessory/female/hair/haircard1.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/female/hair/back_hair2.mesh"
|
||||
},
|
||||
"back_hair3": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "haircard1",
|
||||
"path": "res://characters/accessory/female/hair/haircard1.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/female/hair/back_hair3.mesh"
|
||||
},
|
||||
"front_hair1": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "haircard1",
|
||||
"path": "res://characters/accessory/female/hair/haircard1.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/female/hair/front_hair1.mesh"
|
||||
},
|
||||
"front_hair2": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "haircard1",
|
||||
"path": "res://characters/accessory/female/hair/haircard1.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/female/hair/front_hair2.mesh"
|
||||
},
|
||||
"front_hair3": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "haircard1",
|
||||
"path": "res://characters/accessory/female/hair/haircard1.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/female/hair/front_hair3.mesh"
|
||||
},
|
||||
"front_hair4": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "haircard1",
|
||||
"path": "res://characters/accessory/female/hair/haircard1.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/female/hair/front_hair4.mesh"
|
||||
},
|
||||
"hair_default": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "Material",
|
||||
"path": "res://characters/accessory/female/hair/Material.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/female/hair/hair_default.mesh"
|
||||
}
|
||||
},
|
||||
"panties": {
|
||||
"panties_default": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "Material",
|
||||
"path": "res://characters/accessory/female/panties/Material.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/female/panties/panties_default.mesh"
|
||||
}
|
||||
},
|
||||
"tears": {
|
||||
"tears_default": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "Material",
|
||||
"path": "res://characters/accessory/female/tears/Material.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/female/tears/tears_default.mesh"
|
||||
}
|
||||
},
|
||||
"teeth": {
|
||||
"teeth_default": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "Material",
|
||||
"path": "res://characters/accessory/female/teeth/Material.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/female/teeth/teeth_default.mesh"
|
||||
}
|
||||
},
|
||||
"toenail": {
|
||||
"toenail_default": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "Material",
|
||||
"path": "res://characters/accessory/female/toenail/Material.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/female/toenail/toenail_default.mesh"
|
||||
}
|
||||
},
|
||||
"tongue": {
|
||||
"tongue_default": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "Material",
|
||||
"path": "res://characters/accessory/female/tongue/Material.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/female/tongue/tongue_default.mesh"
|
||||
}
|
||||
},
|
||||
"top": {
|
||||
"top_default": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "Material",
|
||||
"path": "res://characters/accessory/female/top/Material.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/female/top/top_default.mesh"
|
||||
}
|
||||
}
|
||||
},
|
||||
"male": {
|
||||
"body": {
|
||||
"body_default": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "Material",
|
||||
"path": "res://characters/accessory/male/body/Material.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/male/body/body_default.mesh"
|
||||
}
|
||||
},
|
||||
"eyebrows": {
|
||||
"eyebrows_default": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "Material",
|
||||
"path": "res://characters/accessory/male/eyebrows/Material.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/male/eyebrows/eyebrows_default.mesh"
|
||||
}
|
||||
},
|
||||
"eyelashes": {
|
||||
"eyelashes_default": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "Material",
|
||||
"path": "res://characters/accessory/male/eyelashes/Material.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/male/eyelashes/eyelashes_default.mesh"
|
||||
}
|
||||
},
|
||||
"eyes": {
|
||||
"eyes_default": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "Material",
|
||||
"path": "res://characters/accessory/male/eyes/Material.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/male/eyes/eyes_default.mesh"
|
||||
}
|
||||
},
|
||||
"hair": {
|
||||
"back_hair1": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "haircard1",
|
||||
"path": "res://characters/accessory/male/hair/haircard1.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/male/hair/back_hair1.mesh"
|
||||
},
|
||||
"back_hair2": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "haircard1",
|
||||
"path": "res://characters/accessory/male/hair/haircard1.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/male/hair/back_hair2.mesh"
|
||||
},
|
||||
"back_hair3": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "haircard1",
|
||||
"path": "res://characters/accessory/male/hair/haircard1.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/male/hair/back_hair3.mesh"
|
||||
},
|
||||
"front_hair1": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "haircard1",
|
||||
"path": "res://characters/accessory/male/hair/haircard1.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/male/hair/front_hair1.mesh"
|
||||
},
|
||||
"front_hair2": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "haircard1",
|
||||
"path": "res://characters/accessory/male/hair/haircard1.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/male/hair/front_hair2.mesh"
|
||||
},
|
||||
"front_hair3": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "haircard1",
|
||||
"path": "res://characters/accessory/male/hair/haircard1.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/male/hair/front_hair3.mesh"
|
||||
},
|
||||
"hair_default": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "Material",
|
||||
"path": "res://characters/accessory/male/hair/Material.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/male/hair/hair_default.mesh"
|
||||
}
|
||||
},
|
||||
"teeth": {
|
||||
"teeth_default": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "Material",
|
||||
"path": "res://characters/accessory/male/teeth/Material.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/male/teeth/teeth_default.mesh"
|
||||
}
|
||||
},
|
||||
"tongue": {
|
||||
"tongue_default": {
|
||||
"materials": [
|
||||
{
|
||||
"name": "Material",
|
||||
"path": "res://characters/accessory/male/tongue/Material.tres"
|
||||
}
|
||||
],
|
||||
"path": "res://characters/accessory/male/tongue/tongue_default.mesh"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
4
proto2/characters/accessory/female/body/Material.tres
Normal file
4
proto2/characters/accessory/female/body/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.996869, 0.877956, 0.794742, 1 )
|
||||
BIN
proto2/characters/accessory/female/body/body_default.mesh
Normal file
BIN
proto2/characters/accessory/female/body/body_default.mesh
Normal file
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
Binary file not shown.
4
proto2/characters/accessory/female/eyes/Material.tres
Normal file
4
proto2/characters/accessory/female/eyes/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
BIN
proto2/characters/accessory/female/eyes/eyes_default.mesh
Normal file
BIN
proto2/characters/accessory/female/eyes/eyes_default.mesh
Normal file
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
Binary file not shown.
4
proto2/characters/accessory/female/hair/Material.tres
Normal file
4
proto2/characters/accessory/female/hair/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
BIN
proto2/characters/accessory/female/hair/back_hair1.mesh
Normal file
BIN
proto2/characters/accessory/female/hair/back_hair1.mesh
Normal file
Binary file not shown.
BIN
proto2/characters/accessory/female/hair/back_hair2.mesh
Normal file
BIN
proto2/characters/accessory/female/hair/back_hair2.mesh
Normal file
Binary file not shown.
BIN
proto2/characters/accessory/female/hair/back_hair3.mesh
Normal file
BIN
proto2/characters/accessory/female/hair/back_hair3.mesh
Normal file
Binary file not shown.
BIN
proto2/characters/accessory/female/hair/front_hair1.mesh
Normal file
BIN
proto2/characters/accessory/female/hair/front_hair1.mesh
Normal file
Binary file not shown.
BIN
proto2/characters/accessory/female/hair/front_hair2.mesh
Normal file
BIN
proto2/characters/accessory/female/hair/front_hair2.mesh
Normal file
Binary file not shown.
BIN
proto2/characters/accessory/female/hair/front_hair3.mesh
Normal file
BIN
proto2/characters/accessory/female/hair/front_hair3.mesh
Normal file
Binary file not shown.
BIN
proto2/characters/accessory/female/hair/front_hair4.mesh
Normal file
BIN
proto2/characters/accessory/female/hair/front_hair4.mesh
Normal file
Binary file not shown.
BIN
proto2/characters/accessory/female/hair/hair_default.mesh
Normal file
BIN
proto2/characters/accessory/female/hair/hair_default.mesh
Normal file
Binary file not shown.
10
proto2/characters/accessory/female/hair/haircard1.tres
Normal file
10
proto2/characters/accessory/female/hair/haircard1.tres
Normal file
@@ -0,0 +1,10 @@
|
||||
[gd_resource type="SpatialMaterial" load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://characters/hair/haircard2.png" type="Texture" id=1]
|
||||
|
||||
[resource]
|
||||
resource_name = "haircard1"
|
||||
params_use_alpha_scissor = true
|
||||
params_alpha_scissor_threshold = 0.5
|
||||
albedo_color = Color( 0.0599718, 0.903545, 0.0758442, 1 )
|
||||
albedo_texture = ExtResource( 1 )
|
||||
4
proto2/characters/accessory/female/panties/Material.tres
Normal file
4
proto2/characters/accessory/female/panties/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
BIN
proto2/characters/accessory/female/panties/panties_default.mesh
Normal file
BIN
proto2/characters/accessory/female/panties/panties_default.mesh
Normal file
Binary file not shown.
4
proto2/characters/accessory/female/tears/Material.tres
Normal file
4
proto2/characters/accessory/female/tears/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.807385, 0.807385, 0.807385, 1 )
|
||||
BIN
proto2/characters/accessory/female/tears/tears_default.mesh
Normal file
BIN
proto2/characters/accessory/female/tears/tears_default.mesh
Normal file
Binary file not shown.
4
proto2/characters/accessory/female/teeth/Material.tres
Normal file
4
proto2/characters/accessory/female/teeth/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
BIN
proto2/characters/accessory/female/teeth/teeth_default.mesh
Normal file
BIN
proto2/characters/accessory/female/teeth/teeth_default.mesh
Normal file
Binary file not shown.
4
proto2/characters/accessory/female/toenail/Material.tres
Normal file
4
proto2/characters/accessory/female/toenail/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
BIN
proto2/characters/accessory/female/toenail/toenail_default.mesh
Normal file
BIN
proto2/characters/accessory/female/toenail/toenail_default.mesh
Normal file
Binary file not shown.
4
proto2/characters/accessory/female/tongue/Material.tres
Normal file
4
proto2/characters/accessory/female/tongue/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
BIN
proto2/characters/accessory/female/tongue/tongue_default.mesh
Normal file
BIN
proto2/characters/accessory/female/tongue/tongue_default.mesh
Normal file
Binary file not shown.
4
proto2/characters/accessory/female/top/Material.tres
Normal file
4
proto2/characters/accessory/female/top/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
BIN
proto2/characters/accessory/female/top/top_default.mesh
Normal file
BIN
proto2/characters/accessory/female/top/top_default.mesh
Normal file
Binary file not shown.
4
proto2/characters/accessory/male/body/Material.tres
Normal file
4
proto2/characters/accessory/male/body/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.97209, 0.855219, 0.77166, 1 )
|
||||
BIN
proto2/characters/accessory/male/body/body_default.mesh
Normal file
BIN
proto2/characters/accessory/male/body/body_default.mesh
Normal file
Binary file not shown.
4
proto2/characters/accessory/male/eyebrows/Material.tres
Normal file
4
proto2/characters/accessory/male/eyebrows/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
BIN
proto2/characters/accessory/male/eyebrows/eyebrows_default.mesh
Normal file
BIN
proto2/characters/accessory/male/eyebrows/eyebrows_default.mesh
Normal file
Binary file not shown.
4
proto2/characters/accessory/male/eyelashes/Material.tres
Normal file
4
proto2/characters/accessory/male/eyelashes/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
Binary file not shown.
4
proto2/characters/accessory/male/eyes/Material.tres
Normal file
4
proto2/characters/accessory/male/eyes/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
BIN
proto2/characters/accessory/male/eyes/eyes_default.mesh
Normal file
BIN
proto2/characters/accessory/male/eyes/eyes_default.mesh
Normal file
Binary file not shown.
4
proto2/characters/accessory/male/hair/Material.tres
Normal file
4
proto2/characters/accessory/male/hair/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
BIN
proto2/characters/accessory/male/hair/back_hair1.mesh
Normal file
BIN
proto2/characters/accessory/male/hair/back_hair1.mesh
Normal file
Binary file not shown.
BIN
proto2/characters/accessory/male/hair/back_hair2.mesh
Normal file
BIN
proto2/characters/accessory/male/hair/back_hair2.mesh
Normal file
Binary file not shown.
BIN
proto2/characters/accessory/male/hair/back_hair3.mesh
Normal file
BIN
proto2/characters/accessory/male/hair/back_hair3.mesh
Normal file
Binary file not shown.
BIN
proto2/characters/accessory/male/hair/front_hair1.mesh
Normal file
BIN
proto2/characters/accessory/male/hair/front_hair1.mesh
Normal file
Binary file not shown.
BIN
proto2/characters/accessory/male/hair/front_hair2.mesh
Normal file
BIN
proto2/characters/accessory/male/hair/front_hair2.mesh
Normal file
Binary file not shown.
BIN
proto2/characters/accessory/male/hair/front_hair3.mesh
Normal file
BIN
proto2/characters/accessory/male/hair/front_hair3.mesh
Normal file
Binary file not shown.
BIN
proto2/characters/accessory/male/hair/hair_default.mesh
Normal file
BIN
proto2/characters/accessory/male/hair/hair_default.mesh
Normal file
Binary file not shown.
10
proto2/characters/accessory/male/hair/haircard1.tres
Normal file
10
proto2/characters/accessory/male/hair/haircard1.tres
Normal file
@@ -0,0 +1,10 @@
|
||||
[gd_resource type="SpatialMaterial" load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://characters/hair/haircard2.png" type="Texture" id=1]
|
||||
|
||||
[resource]
|
||||
resource_name = "haircard1"
|
||||
params_use_alpha_scissor = true
|
||||
params_alpha_scissor_threshold = 0.5
|
||||
albedo_color = Color( 0.0599718, 0.903545, 0.0758442, 1 )
|
||||
albedo_texture = ExtResource( 1 )
|
||||
4
proto2/characters/accessory/male/teeth/Material.tres
Normal file
4
proto2/characters/accessory/male/teeth/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
BIN
proto2/characters/accessory/male/teeth/teeth_default.mesh
Normal file
BIN
proto2/characters/accessory/male/teeth/teeth_default.mesh
Normal file
Binary file not shown.
4
proto2/characters/accessory/male/tongue/Material.tres
Normal file
4
proto2/characters/accessory/male/tongue/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
BIN
proto2/characters/accessory/male/tongue/tongue_default.mesh
Normal file
BIN
proto2/characters/accessory/male/tongue/tongue_default.mesh
Normal file
Binary file not shown.
4
proto2/characters/accessory/unknown/body/Material.tres
Normal file
4
proto2/characters/accessory/unknown/body/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.996869, 0.877956, 0.794742, 1 )
|
||||
BIN
proto2/characters/accessory/unknown/body/body_default.mesh
Normal file
BIN
proto2/characters/accessory/unknown/body/body_default.mesh
Normal file
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
Binary file not shown.
4
proto2/characters/accessory/unknown/eyes/Material.tres
Normal file
4
proto2/characters/accessory/unknown/eyes/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
BIN
proto2/characters/accessory/unknown/eyes/eyes_default.mesh
Normal file
BIN
proto2/characters/accessory/unknown/eyes/eyes_default.mesh
Normal file
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
Binary file not shown.
4
proto2/characters/accessory/unknown/hair/Material.tres
Normal file
4
proto2/characters/accessory/unknown/hair/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
BIN
proto2/characters/accessory/unknown/hair/hair_default.mesh
Normal file
BIN
proto2/characters/accessory/unknown/hair/hair_default.mesh
Normal file
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
BIN
proto2/characters/accessory/unknown/panties/panties_default.mesh
Normal file
BIN
proto2/characters/accessory/unknown/panties/panties_default.mesh
Normal file
Binary file not shown.
4
proto2/characters/accessory/unknown/tears/Material.tres
Normal file
4
proto2/characters/accessory/unknown/tears/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.807385, 0.807385, 0.807385, 1 )
|
||||
BIN
proto2/characters/accessory/unknown/tears/tears_default.mesh
Normal file
BIN
proto2/characters/accessory/unknown/tears/tears_default.mesh
Normal file
Binary file not shown.
4
proto2/characters/accessory/unknown/teeth/Material.tres
Normal file
4
proto2/characters/accessory/unknown/teeth/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
BIN
proto2/characters/accessory/unknown/teeth/teeth_default.mesh
Normal file
BIN
proto2/characters/accessory/unknown/teeth/teeth_default.mesh
Normal file
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
BIN
proto2/characters/accessory/unknown/toenail/toenail_default.mesh
Normal file
BIN
proto2/characters/accessory/unknown/toenail/toenail_default.mesh
Normal file
Binary file not shown.
4
proto2/characters/accessory/unknown/tongue/Material.tres
Normal file
4
proto2/characters/accessory/unknown/tongue/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
BIN
proto2/characters/accessory/unknown/tongue/tongue_default.mesh
Normal file
BIN
proto2/characters/accessory/unknown/tongue/tongue_default.mesh
Normal file
Binary file not shown.
4
proto2/characters/accessory/unknown/top/Material.tres
Normal file
4
proto2/characters/accessory/unknown/top/Material.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="SpatialMaterial" format=2]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color( 0.903545, 0.903545, 0.903545, 1 )
|
||||
BIN
proto2/characters/accessory/unknown/top/top_default.mesh
Normal file
BIN
proto2/characters/accessory/unknown/top/top_default.mesh
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user