proto3 initial commit
This commit is contained in:
785
proto3/godot/scenes/furniture/bed.escn
Normal file
785
proto3/godot/scenes/furniture/bed.escn
Normal file
File diff suppressed because one or more lines are too long
1063
proto3/godot/scenes/furniture/bed.escn.import
Normal file
1063
proto3/godot/scenes/furniture/bed.escn.import
Normal file
File diff suppressed because it is too large
Load Diff
237
proto3/godot/scenes/furniture/bed.gd
Normal file
237
proto3/godot/scenes/furniture/bed.gd
Normal file
@@ -0,0 +1,237 @@
|
||||
extends Spatial
|
||||
|
||||
var playback = {
|
||||
"init": {
|
||||
"slave": [
|
||||
["travel", "parameters/main/playback", "SmartObject"],
|
||||
["travel", "parameters/main/SmartObject/playback", "bed"],
|
||||
["travel", "parameters/main/SmartObject/bed/playback", "bed_facing_up"],
|
||||
["set", "parameters/free_grabbed/current", 0]
|
||||
]
|
||||
},
|
||||
"engage": {
|
||||
"master": [
|
||||
["travel", "parameters/main/playback", "SmartObject"],
|
||||
["travel", "parameters/main/SmartObject/playback", "bed"],
|
||||
["travel", "parameters/main/SmartObject/bed/playback", "bed_start_m"],
|
||||
["set", "parameters/free_grabbed/current", 0]
|
||||
],
|
||||
"slave": [
|
||||
["travel", "parameters/main/playback", "SmartObject"],
|
||||
["travel", "parameters/main/SmartObject/playback", "bed"],
|
||||
["travel", "parameters/main/SmartObject/bed/playback", "bed_start"],
|
||||
["set", "parameters/free_grabbed/current", 0]
|
||||
]
|
||||
},
|
||||
"torture": {
|
||||
"master": [
|
||||
["travel", "parameters/main/playback", "SmartObject"],
|
||||
["travel", "parameters/main/SmartObject/playback", "bed"],
|
||||
["travel", "parameters/main/SmartObject/bed/playback", "beating_m"],
|
||||
["set", "parameters/free_grabbed/current", 0]
|
||||
],
|
||||
"slave": [
|
||||
["travel", "parameters/main/playback", "SmartObject"],
|
||||
["travel", "parameters/main/SmartObject/playback", "bed"],
|
||||
["travel", "parameters/main/SmartObject/bed/playback", "beating"],
|
||||
["set", "parameters/free_grabbed/current", 0]
|
||||
]
|
||||
},
|
||||
"force": {
|
||||
"master": [
|
||||
["travel", "parameters/main/playback", "SmartObject"],
|
||||
["travel", "parameters/main/SmartObject/playback", "bed"],
|
||||
["travel", "parameters/main/SmartObject/bed/playback", "forcing_m"],
|
||||
["set", "parameters/free_grabbed/current", 0]
|
||||
],
|
||||
"slave": [
|
||||
["travel", "parameters/main/playback", "SmartObject"],
|
||||
["travel", "parameters/main/SmartObject/playback", "bed"],
|
||||
["travel", "parameters/main/SmartObject/bed/playback", "forcing"],
|
||||
["set", "parameters/free_grabbed/current", 0]
|
||||
]
|
||||
},
|
||||
"force_s1": {
|
||||
"master": [
|
||||
["travel", "parameters/main/playback", "SmartObject"],
|
||||
["travel", "parameters/main/SmartObject/playback", "bed"],
|
||||
["travel", "parameters/main/SmartObject/bed/playback", "forcing_s1_m"],
|
||||
["set", "parameters/free_grabbed/current", 0]
|
||||
],
|
||||
"slave": [
|
||||
["travel", "parameters/main/playback", "SmartObject"],
|
||||
["travel", "parameters/main/SmartObject/playback", "bed"],
|
||||
["travel", "parameters/main/SmartObject/bed/playback", "forcing_s1"],
|
||||
["set", "parameters/free_grabbed/current", 0]
|
||||
]
|
||||
}
|
||||
}
|
||||
var state = "init"
|
||||
var active_state = ""
|
||||
var bodies = []
|
||||
func entered(body):
|
||||
if body.is_in_group("characters"):
|
||||
if body.get_meta("grabbing"):
|
||||
bodies.push_back(body)
|
||||
global.smart_object.push_back(body)
|
||||
print("entered:", body.name)
|
||||
elif !body.get_meta("grabbed"):
|
||||
bodies.push_back(body)
|
||||
func exited(body):
|
||||
if body in bodies:
|
||||
print("exited:", body.name)
|
||||
bodies.erase(body)
|
||||
global.smart_object.erase(body)
|
||||
var move_queue = []
|
||||
var captured = []
|
||||
func capture_slave(ch, orig_owner):
|
||||
ch.add_collision_exception_with(orig_owner)
|
||||
ch.set_meta("smart_object", true)
|
||||
ch.set_meta("orig_owner", get_path_to(orig_owner))
|
||||
for place in get_children():
|
||||
if place.name.begins_with("place"):
|
||||
if !place.has_meta("busy"):
|
||||
move_queue.push_back([ch, place])
|
||||
place.set_meta("busy", ch)
|
||||
print("place: ", place.name)
|
||||
break
|
||||
captured.push_back(get_path_to(ch))
|
||||
func free_slave(ch):
|
||||
var orig_owner = ch.get_meta("orig_owner")
|
||||
ch.remove_collision_exception_with(get_node(orig_owner))
|
||||
ch.set_meta("smart_object", false)
|
||||
ch.remove_meta("orig_owner")
|
||||
var activate_delay = 0.0
|
||||
func activate():
|
||||
if activate_delay > 0.0:
|
||||
return
|
||||
if state in ["init", "engage", "torture"]:
|
||||
activate_state()
|
||||
activate_delay += 0.5
|
||||
func activate_state():
|
||||
# if active_state == state:
|
||||
# return
|
||||
print("ACTIVATE ", state)
|
||||
match(state):
|
||||
"init":
|
||||
for k in bodies:
|
||||
var ch = grabbing.get_grabbed(k)
|
||||
if !ch:
|
||||
continue
|
||||
var s = playback[state]["slave"]
|
||||
print("ungrab")
|
||||
print("SMART: ", s)
|
||||
grabbing.ungrab_character(k, s)
|
||||
capture_slave(ch, k)
|
||||
state = "engage"
|
||||
"engage":
|
||||
for k in bodies:
|
||||
if k.get_meta("smart_object"):
|
||||
continue
|
||||
for place in get_children():
|
||||
if place.name.begins_with("place"):
|
||||
if place.has_meta("busy"):
|
||||
print("has npc")
|
||||
if !place.has_meta("master"):
|
||||
print("has no master")
|
||||
place.set_meta("master", k)
|
||||
k.set_meta("smart_object", true)
|
||||
print(k.name)
|
||||
place.get_meta("busy").smart_obj(playback[state]["slave"])
|
||||
place.get_meta("master").smart_obj(playback[state]["master"])
|
||||
state = "torture"
|
||||
"torture":
|
||||
for place in get_children():
|
||||
if place.name.begins_with("place"):
|
||||
if place.has_meta("busy"):
|
||||
if place.has_meta("master"):
|
||||
place.get_meta("busy").smart_obj(playback[state]["slave"])
|
||||
place.get_meta("master").smart_obj(playback[state]["master"])
|
||||
"force":
|
||||
for place in get_children():
|
||||
if place.name.begins_with("place"):
|
||||
if place.has_meta("busy"):
|
||||
if place.has_meta("master"):
|
||||
place.get_meta("busy").smart_obj(playback[state]["slave"])
|
||||
place.get_meta("master").smart_obj(playback[state]["master"])
|
||||
"force_s1":
|
||||
for place in get_children():
|
||||
if place.name.begins_with("place"):
|
||||
if place.has_meta("busy"):
|
||||
if place.has_meta("master"):
|
||||
place.get_meta("busy").smart_obj(playback[state]["slave"])
|
||||
place.get_meta("master").smart_obj(playback[state]["master"])
|
||||
"leave":
|
||||
for place in get_children():
|
||||
if place.has_meta("busy") && place.has_meta("master"):
|
||||
var m = place.get_meta("master")
|
||||
m.set_meta("smart_object", false)
|
||||
place.remove_meta("master")
|
||||
m.do_stop()
|
||||
var s = place.get_meta("busy")
|
||||
free_slave(s)
|
||||
place.remove_meta("busy")
|
||||
s.do_stop()
|
||||
var sub = rpg.get_submission(s)
|
||||
sub += 100.0
|
||||
s.set_meta("submission", sub)
|
||||
rpg.update_xp(m, 300.0)
|
||||
active_state = state
|
||||
func _ready():
|
||||
var e = $Area.connect("body_entered", self, "entered")
|
||||
assert(e == OK)
|
||||
e = $Area.connect("body_exited", self, "exited")
|
||||
assert(e == OK)
|
||||
var act = false
|
||||
func _process(_delta):
|
||||
if Input.is_action_just_pressed("grab"):
|
||||
act = true
|
||||
func _physics_process(delta):
|
||||
if act:
|
||||
activate()
|
||||
act = false
|
||||
while move_queue.size() > 0:
|
||||
var item = move_queue.pop_front()
|
||||
item[0].global_transform = item[1].global_transform
|
||||
for place in get_children():
|
||||
if place.has_meta("busy"):
|
||||
place.get_meta("busy").global_transform = place.global_transform
|
||||
place.get_meta("busy").orientation.basis = place.global_transform.basis
|
||||
if place.has_meta("master"):
|
||||
place.get_meta("master").global_transform = place.global_transform
|
||||
place.get_meta("master").orientation.basis = place.global_transform.basis
|
||||
activate_delay -= delta
|
||||
if active_state == "torture":
|
||||
for place in get_children():
|
||||
if place.has_meta("busy") && place.has_meta("master"):
|
||||
var strength = rpg.get_strength(place.get_meta("master"))
|
||||
rpg.damage_stamina(place.get_meta("busy"), strength * 0.1 * delta)
|
||||
print(rpg.get_stamina(place.get_meta("busy")))
|
||||
if rpg.get_stamina(place.get_meta("busy")) <= 10.0:
|
||||
state = "force"
|
||||
activate_state()
|
||||
rpg.damage_stamina(place.get_meta("master"), 5.0 * delta)
|
||||
if active_state == "force":
|
||||
for place in get_children():
|
||||
if place.has_meta("busy") && place.has_meta("master"):
|
||||
var strength = rpg.get_strength(place.get_meta("master"))
|
||||
rpg.damage_stamina(place.get_meta("busy"), strength * 0.01 * delta)
|
||||
print(rpg.get_stamina(place.get_meta("busy")))
|
||||
if rpg.get_stamina(place.get_meta("busy")) <= 10.0:
|
||||
state = "force_s1"
|
||||
activate_state()
|
||||
rpg.damage_stamina(place.get_meta("master"), 1.0 * delta)
|
||||
if active_state == "force_s1":
|
||||
for place in get_children():
|
||||
if place.has_meta("busy") && place.has_meta("master"):
|
||||
var strength = rpg.get_strength(place.get_meta("master"))
|
||||
rpg.damage_stamina(place.get_meta("busy"), strength * 0.01 * delta)
|
||||
print(rpg.get_stamina(place.get_meta("busy")))
|
||||
rpg.damage_stamina(place.get_meta("master"), 1.0 * delta)
|
||||
if rpg.get_stamina(place.get_meta("busy")) <= 0.0:
|
||||
state = "leave"
|
||||
activate_state()
|
||||
if active_state == "leave":
|
||||
state = "init"
|
||||
active_state = ""
|
||||
|
||||
19
proto3/godot/scenes/furniture/bed.tscn
Normal file
19
proto3/godot/scenes/furniture/bed.tscn
Normal file
@@ -0,0 +1,19 @@
|
||||
[gd_scene load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://scenes/furniture/bed.escn" type="PackedScene" id=1]
|
||||
[ext_resource path="res://scenes/furniture/bed.gd" type="Script" id=2]
|
||||
|
||||
[sub_resource type="BoxShape" id=1]
|
||||
extents = Vector3( 0.741339, 0.577236, 1.07588 )
|
||||
|
||||
[node name="bed" instance=ExtResource( 1 )]
|
||||
script = ExtResource( 2 )
|
||||
|
||||
[node name="Area" type="Area" parent="." index="1"]
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape" parent="Area" index="0"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.595083, 0 )
|
||||
shape = SubResource( 1 )
|
||||
|
||||
[node name="place1" type="Spatial" parent="." index="2"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.133919, 0.464468, 0.90286 )
|
||||
540
proto3/godot/scenes/furniture/closet.escn
Normal file
540
proto3/godot/scenes/furniture/closet.escn
Normal file
@@ -0,0 +1,540 @@
|
||||
[gd_scene load_steps=1 format=2]
|
||||
|
||||
[sub_resource id=1 type="Shader"]
|
||||
|
||||
resource_name = "Shader Nodetree"
|
||||
code = "shader_type spatial;
|
||||
render_mode blend_mix, depth_draw_always, cull_back, diffuse_burley, specular_schlick_ggx;
|
||||
|
||||
|
||||
|
||||
void node_bsdf_principled(vec4 color, float subsurface, vec4 subsurface_color,
|
||||
float metallic, float specular, float roughness, float clearcoat,
|
||||
float clearcoat_roughness, float anisotropy, float transmission,
|
||||
float IOR, out vec3 albedo, out float sss_strength_out,
|
||||
out float metallic_out, out float specular_out,
|
||||
out float roughness_out, out float clearcoat_out,
|
||||
out float clearcoat_gloss_out, out float anisotropy_out,
|
||||
out float transmission_out, out float ior) {
|
||||
metallic = clamp(metallic, 0.0, 1.0);
|
||||
transmission = clamp(transmission, 0.0, 1.0);
|
||||
|
||||
subsurface = subsurface * (1.0 - metallic);
|
||||
|
||||
albedo = mix(color.rgb, subsurface_color.rgb, subsurface);
|
||||
sss_strength_out = subsurface;
|
||||
metallic_out = metallic;
|
||||
specular_out = pow((IOR - 1.0)/(IOR + 1.0), 2)/0.08;
|
||||
roughness_out = roughness;
|
||||
clearcoat_out = clearcoat * (1.0 - transmission);
|
||||
clearcoat_gloss_out = 1.0 - clearcoat_roughness;
|
||||
anisotropy_out = clamp(anisotropy, 0.0, 1.0);
|
||||
transmission_out = (1.0 - transmission) * (1.0 - metallic);
|
||||
ior = IOR;
|
||||
}
|
||||
|
||||
void vertex () {
|
||||
}
|
||||
|
||||
void fragment () {
|
||||
|
||||
// node: 'Principled BSDF'
|
||||
// type: 'ShaderNodeBsdfPrincipled'
|
||||
// input sockets handling
|
||||
vec4 node0_in0_basecolor = vec4(0.6399999856948853, 0.6399999856948853,
|
||||
0.6399999856948853, 1.0);
|
||||
float node0_in1_subsurface = float(0.0);
|
||||
vec3 node0_in2_subsurfaceradius = vec3(1.0, 0.20000000298023224,
|
||||
0.10000000149011612);
|
||||
vec4 node0_in3_subsurfacecolor = vec4(0.800000011920929, 0.800000011920929,
|
||||
0.800000011920929, 1.0);
|
||||
float node0_in4_metallic = float(0.0);
|
||||
float node0_in5_specular = float(0.019999999552965164);
|
||||
float node0_in6_speculartint = float(0.0);
|
||||
float node0_in7_roughness = float(1.0);
|
||||
float node0_in8_anisotropic = float(0.0);
|
||||
float node0_in9_anisotropicrotation = float(0.0);
|
||||
float node0_in10_sheen = float(0.0);
|
||||
float node0_in11_sheentint = float(0.5);
|
||||
float node0_in12_clearcoat = float(0.0);
|
||||
float node0_in13_clearcoatroughness = float(0.029999999329447746);
|
||||
float node0_in14_ior = float(1.0);
|
||||
float node0_in15_transmission = float(0.0);
|
||||
float node0_in16_transmissionroughness = float(0.0);
|
||||
vec4 node0_in17_emission = vec4(0.0, 0.0, 0.0, 1.0);
|
||||
float node0_in18_alpha = float(1.0);
|
||||
vec3 node0_in19_normal = NORMAL;
|
||||
vec3 node0_in20_clearcoatnormal = vec3(0.0, 0.0, 0.0);
|
||||
vec3 node0_in21_tangent = TANGENT;
|
||||
// output sockets definitions
|
||||
vec3 node0_bsdf_out0_albedo;
|
||||
float node0_bsdf_out1_sss_strength;
|
||||
float node0_bsdf_out3_specular;
|
||||
float node0_bsdf_out2_metallic;
|
||||
float node0_bsdf_out4_roughness;
|
||||
float node0_bsdf_out5_clearcoat;
|
||||
float node0_bsdf_out6_clearcoat_gloss;
|
||||
float node0_bsdf_out7_anisotropy;
|
||||
float node0_bsdf_out8_transmission;
|
||||
float node0_bsdf_out9_ior;
|
||||
|
||||
node_bsdf_principled(node0_in0_basecolor, node0_in1_subsurface,
|
||||
node0_in3_subsurfacecolor, node0_in4_metallic, node0_in5_specular,
|
||||
node0_in7_roughness, node0_in12_clearcoat, node0_in13_clearcoatroughness,
|
||||
node0_in8_anisotropic, node0_in15_transmission, node0_in14_ior,
|
||||
node0_bsdf_out0_albedo, node0_bsdf_out1_sss_strength, node0_bsdf_out2_metallic,
|
||||
node0_bsdf_out3_specular, node0_bsdf_out4_roughness, node0_bsdf_out5_clearcoat,
|
||||
node0_bsdf_out6_clearcoat_gloss, node0_bsdf_out7_anisotropy,
|
||||
node0_bsdf_out8_transmission, node0_bsdf_out9_ior);
|
||||
|
||||
|
||||
ALBEDO = node0_bsdf_out0_albedo;
|
||||
SSS_STRENGTH = node0_bsdf_out1_sss_strength;
|
||||
SPECULAR = node0_bsdf_out3_specular;
|
||||
METALLIC = node0_bsdf_out2_metallic;
|
||||
ROUGHNESS = node0_bsdf_out4_roughness;
|
||||
CLEARCOAT = node0_bsdf_out5_clearcoat;
|
||||
CLEARCOAT_GLOSS = node0_bsdf_out6_clearcoat_gloss;
|
||||
NORMAL = node0_in19_normal;
|
||||
// uncomment it when you need it
|
||||
// TRANSMISSION = vec3(1.0, 1.0, 1.0) * node0_bsdf_out8_transmission;
|
||||
// uncomment it when you are modifing TANGENT
|
||||
// TANGENT = normalize(cross(cross(node0_in21_tangent, NORMAL), NORMAL));
|
||||
// BINORMAL = cross(TANGENT, NORMAL);
|
||||
// uncomment it when you have tangent(UV) set
|
||||
// ANISOTROPY = node0_bsdf_out7_anisotropy;
|
||||
}
|
||||
"
|
||||
|
||||
[sub_resource id=2 type="ShaderMaterial"]
|
||||
|
||||
resource_name = ""
|
||||
shader = SubResource(1)
|
||||
|
||||
[sub_resource id=3 type="ArrayMesh"]
|
||||
|
||||
resource_name = "closet"
|
||||
surfaces/0 = {
|
||||
"material":SubResource(2),
|
||||
"primitive":4,
|
||||
"arrays":[
|
||||
Vector3Array(0.518332, 1.89936, 0.670455, 0.518332, 0.0134721, 0.00236547, 0.518332, 1.89936, 0.00236556, 0.518332, 1.89936, 0.00236556, -0.481668, 0.0134721, 0.00236547, -0.481668, 1.89936, 0.00236556, -0.481668, 1.89936, 0.670455, 0.518332, 1.89936, 0.00236556, -0.481668, 1.89936, 0.00236556, 0.446375, 1.8274, 0.670455, 0.518332, 0.0134721, 0.670455, 0.518332, 1.89936, 0.670455, 0.518332, 0.0134721, 0.670455, -0.481668, 0.0134721, 0.00236547, 0.518332, 0.0134721, 0.00236547, -0.481668, 1.89936, 0.00236556, -0.481668, 0.0134721, 0.670455, -0.481668, 1.89936, 0.670455, -0.40971, 0.076086, 0.670455, -0.40971, 1.8274, 0.670455, -0.481668, 0.0134721, 0.670455, -0.00357551, 1.8274, 0.589424, 0.052192, 1.8274, 0.589424, 0.446375, 1.8274, 0.670455, 0.446375, 1.8274, 0.670455, 0.446375, 0.076086, 0.074323, 0.446375, 0.076086, 0.670455, -0.40971, 0.880073, 0.573859, -0.40971, 1.34076, 0.573859, -0.40971, 1.8274, 0.670455, -0.40971, 1.38007, 0.0743235, -0.00357551, 1.8274, 0.0743236, -0.40971, 1.8274, 0.0743236, -0.00357551, 0.840766, 0.573858, -0.00357551, 0.380074, 0.573858, -0.00357551, 0.076086, 0.589423, -0.00357551, 0.076086, 0.589423, 0.052192, 1.8274, 0.589424, -0.00357551, 1.8274, 0.589424, 0.052192, 0.076086, 0.589423, 0.052192, 1.8274, 0.0743231, 0.052192, 1.8274, 0.589424, 0.446375, 0.076086, 0.074323, 0.052192, 1.8274, 0.0743231, 0.052192, 0.076086, 0.074323, -0.40971, 0.076086, 0.670455, 0.446375, 0.076086, 0.670455, -0.00357551, 0.076086, 0.589423, -0.40971, 0.076086, 0.0743235, -0.00357551, 0.340766, 0.0743235, -0.40971, 0.340766, 0.0743235, -0.40971, 0.380074, 0.0743235, -0.00357551, 0.840766, 0.0743235, -0.40971, 0.840766, 0.0743235, -0.40971, 0.840766, 0.573858, -0.00357551, 0.840766, 0.0743235, -0.00357551, 0.840766, 0.573858, -0.40971, 0.880073, 0.573859, -0.00357551, 0.840766, 0.573858, -0.00357551, 0.880073, 0.573859, -0.00357551, 0.880073, 0.573859, -0.40971, 0.880073, 0.0743235, -0.40971, 0.880073, 0.573859, -0.40971, 0.880073, 0.0743235, -0.00357551, 1.34076, 0.0743235, -0.40971, 1.34076, 0.0743235, -0.40971, 1.34076, 0.573859, -0.00357551, 1.34076, 0.0743235, -0.00357551, 1.34076, 0.573859, -0.40971, 1.38007, 0.573859, -0.00357551, 1.34076, 0.573859, -0.00357551, 1.38007, 0.573859, -0.00357551, 1.38007, 0.573859, -0.40971, 1.38007, 0.0743235, -0.40971, 1.38007, 0.573859, -0.40971, 0.380074, 0.573858, -0.00357551, 0.340766, 0.573858, -0.00357551, 0.380074, 0.573858, -0.00357551, 0.380074, 0.573858, -0.40971, 0.380074, 0.0743235, -0.40971, 0.380074, 0.573858, -0.40971, 0.340766, 0.573858, -0.00357551, 0.340766, 0.0743235, -0.00357551, 0.340766, 0.573858, 0.518332, 0.0134721, 0.670455, 0.518332, 0.0134721, 0.00236547, 0.518332, 1.89936, 0.670455, -0.481668, 1.89936, 0.670455, 0.446375, 0.076086, 0.670455, -0.481668, 0.0134721, 0.670455, -0.481668, 0.0134721, 0.00236547, -0.40971, 1.8274, 0.670455, -0.40971, 1.8274, 0.0743236, -0.00357551, 1.8274, 0.0743236, 0.052192, 1.8274, 0.0743231, 0.446375, 1.8274, 0.0743231, 0.446375, 1.8274, 0.0743231, -0.40971, 0.076086, 0.670455, -0.40971, 0.076086, 0.0743235, -0.40971, 0.340766, 0.573858, -0.40971, 0.340766, 0.0743235, -0.40971, 1.38007, 0.0743235, -0.40971, 1.8274, 0.0743236, -0.40971, 1.38007, 0.573859, -0.40971, 0.380074, 0.573858, -0.40971, 0.380074, 0.0743235, -0.40971, 0.840766, 0.0743235, -0.40971, 0.840766, 0.573858, -0.40971, 0.880073, 0.0743235, -0.40971, 1.34076, 0.0743235, -0.00357551, 1.38007, 0.0743235, -0.00357551, 1.8274, 0.589424, -0.00357551, 1.8274, 0.0743236, -0.00357551, 1.38007, 0.573859, -0.00357551, 1.38007, 0.0743235, -0.00357551, 0.340766, 0.0743235, -0.00357551, 0.076086, 0.0743235, -0.00357551, 0.340766, 0.573858, -0.00357551, 0.880073, 0.573859, -0.00357551, 1.34076, 0.573859, -0.00357551, 1.34076, 0.0743235, -0.00357551, 0.880073, 0.0743235, -0.00357551, 0.840766, 0.0743235, -0.00357551, 0.380074, 0.0743235, 0.052192, 0.076086, 0.589423, 0.052192, 0.076086, 0.074323, 0.446375, 1.8274, 0.0743231, 0.446375, 0.076086, 0.074323, 0.052192, 0.076086, 0.589423, 0.052192, 0.076086, 0.074323, -0.00357551, 0.076086, 0.0743235, -0.40971, 0.076086, 0.0743235, -0.00357551, 0.076086, 0.0743235, -0.00357551, 0.380074, 0.0743235, -0.40971, 0.840766, 0.0743235, -0.40971, 0.840766, 0.573858, -0.00357551, 0.880073, 0.0743235, -0.00357551, 0.880073, 0.0743235, -0.40971, 1.34076, 0.0743235, -0.40971, 1.34076, 0.573859, -0.00357551, 1.38007, 0.0743235, -0.40971, 0.340766, 0.573858, -0.00357551, 0.380074, 0.0743235, -0.40971, 0.340766, 0.0743235),
|
||||
Vector3Array(1.0, 0.0, 5.1487e-09, 1.0, 0.0, 1.8606e-08, 1.0, 0.0, 0.0, 0.0, 4.74084e-08, -1.0, 0.0, 4.74084e-08, -1.0, 0.0, 4.74084e-08, -1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 2.93786e-07, -1.05504e-06, 1.0, 2.35911e-07, 8.35406e-07, 1.0, 2.90353e-07, -7.90992e-07, 1.0, 0.0, -1.0, -4.32143e-08, 0.0, -1.0, -4.32143e-08, 0.0, -1.0, -4.32143e-08, -1.0, 0.0, 4.78451e-09, -1.0, 0.0, 1.72899e-08, -1.0, 0.0, 0.0, 2.60951e-07, -9.20937e-07, 1.0, 2.24448e-07, 1.51451e-06, 1.0, 2.31943e-07, -8.70686e-07, 1.0, 2.29882e-07, -1.0, 0.0, -9.04573e-08, -1.0, 0.0, -3.31371e-07, -1.0, 0.0, -1.0, 0.0, 1.85264e-08, -1.0, 0.0, 7.01728e-08, -1.0, 0.0, 8.86991e-08, 1.0, 0.0, 5.29904e-08, 1.0, 1.95241e-14, 1.5066e-09, 1.0, 1.49341e-07, -6.89472e-07, 0.0, -6.15151e-08, 1.0, 0.0, -6.15151e-08, 1.0, 0.0, -6.15151e-08, 1.0, -1.0, 0.0, -5.03943e-07, -1.0, 0.0, 2.12941e-08, -1.0, 0.0, 1.01615e-09, 0.0, -7.47399e-08, 1.0, 0.0, -1.5459e-09, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, -1.35101e-08, 1.0, 0.0, -3.0081e-09, 1.0, 0.0, 0.0, 0.0, -5.32026e-08, 1.0, 0.0, -4.93274e-08, 1.0, 0.0, -5.39632e-08, 1.0, 1.68222e-08, 1.0, 5.52527e-08, -2.76142e-08, 1.0, 5.5408e-08, 4.48989e-09, 1.0, 7.52739e-08, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -2.29335e-07, 1.0, 0.0, -3.50434e-06, 1.0, 0.0, -3.73367e-06, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, -7.0483e-08, 1.0, 0.0, -6.88895e-08, 1.0, 0.0, -5.97311e-08, 1.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 1.0, 0.0, 2.37547e-08, 0.0, 4.74084e-08, -1.0, 0.0, 1.0, 0.0, 2.22615e-07, 1.60175e-06, 1.0, 2.72321e-07, 1.14468e-06, 1.0, 0.0, -1.0, -4.32143e-08, -1.0, 0.0, 2.20744e-08, 8.61295e-07, -1.0, 0.0, 4.18568e-07, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, -1.58217e-07, -1.0, 0.0, -1.0, 0.0, 0.0, 1.0, -2.26892e-07, -7.26161e-07, 1.0, -9.05513e-08, -9.92635e-07, 1.0, -8.88019e-08, -1.55459e-06, 1.0, 0.0, -1.01432e-06, 1.0, 1.27191e-13, -9.33583e-07, 1.0, 8.03072e-08, -9.15209e-07, 1.0, 3.86019e-08, 4.53385e-06, 1.0, 0.0, -4.50756e-07, 1.0, 0.0, -1.03601e-06, 1.0, 0.0, -9.74591e-07, 1.0, 0.0, 9.74448e-06, 1.0, 6.49297e-14, -9.67925e-07, 1.0, 1.23502e-13, -9.06508e-07, 0.0, -6.15151e-08, 1.0, -1.0, 0.0, 2.3574e-10, -1.0, 0.0, 0.0, -1.0, 0.0, -3.13612e-08, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 2.64865e-10, -1.0, 0.0, 2.06983e-10, -1.0, 0.0, -3.01341e-09, -1.0, 0.0, 2.11035e-08, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, -7.62858e-08, 1.0, 1.0, 0.0, -1.65182e-08, 0.0, -4.85669e-08, 1.0, -1.31847e-08, 1.0, 4.61374e-08, -7.53811e-09, 1.0, 7.52428e-08, 0.0, 1.0, 4.3393e-08, 0.0, 1.0, 4.3393e-08, 8.17515e-09, 1.0, 4.61983e-08, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, -7.96414e-08, 1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, -1.0, 0.0),
|
||||
null, ; No Tangents,
|
||||
null, ; no Vertex Colors,
|
||||
null, ; No UV1,
|
||||
null, ; No UV2,
|
||||
null, ; No Bones,
|
||||
null, ; No Weights,
|
||||
IntArray(0, 2, 1, 3, 5, 4, 6, 8, 7, 9, 11, 10, 12, 14, 13, 15, 17, 16, 18, 20, 19, 21, 23, 22, 24, 26, 25, 27, 29, 28, 30, 32, 31, 33, 35, 34, 36, 38, 37, 39, 41, 40, 42, 44, 43, 45, 47, 46, 48, 50, 49, 51, 53, 52, 54, 56, 55, 57, 59, 58, 60, 62, 61, 63, 65, 64, 66, 68, 67, 69, 71, 70, 72, 74, 73, 75, 77, 76, 78, 80, 79, 81, 83, 82, 0, 1, 84, 3, 4, 85, 6, 7, 86, 87, 11, 19, 19, 11, 9, 9, 10, 88, 12, 13, 89, 15, 16, 90, 19, 20, 87, 20, 18, 10, 10, 18, 88, 91, 21, 92, 92, 21, 93, 94, 22, 95, 95, 22, 23, 91, 23, 21, 24, 25, 96, 97, 99, 98, 98, 99, 100, 101, 103, 102, 102, 103, 29, 29, 27, 97, 97, 104, 99, 104, 106, 105, 97, 107, 104, 27, 107, 97, 28, 29, 103, 108, 28, 109, 27, 28, 108, 104, 107, 106, 30, 31, 110, 111, 113, 112, 112, 113, 114, 115, 117, 116, 116, 117, 35, 35, 118, 111, 111, 119, 113, 119, 118, 120, 120, 118, 121, 111, 118, 119, 34, 35, 117, 122, 34, 123, 33, 34, 122, 118, 35, 33, 36, 37, 124, 39, 40, 125, 42, 43, 126, 46, 128, 127, 127, 128, 129, 130, 47, 131, 131, 47, 45, 46, 47, 128, 48, 49, 132, 51, 52, 133, 54, 55, 134, 57, 58, 135, 60, 61, 136, 63, 64, 137, 66, 67, 138, 69, 70, 139, 72, 73, 140, 75, 76, 141, 78, 79, 142, 81, 82, 143)
|
||||
],
|
||||
"morph_arrays":[]
|
||||
}
|
||||
|
||||
[sub_resource id=4 type="Shader"]
|
||||
|
||||
resource_name = "Shader Nodetree"
|
||||
code = "shader_type spatial;
|
||||
render_mode blend_mix, depth_draw_always, cull_back, diffuse_burley, specular_schlick_ggx;
|
||||
|
||||
|
||||
|
||||
void node_bsdf_principled(vec4 color, float subsurface, vec4 subsurface_color,
|
||||
float metallic, float specular, float roughness, float clearcoat,
|
||||
float clearcoat_roughness, float anisotropy, float transmission,
|
||||
float IOR, out vec3 albedo, out float sss_strength_out,
|
||||
out float metallic_out, out float specular_out,
|
||||
out float roughness_out, out float clearcoat_out,
|
||||
out float clearcoat_gloss_out, out float anisotropy_out,
|
||||
out float transmission_out, out float ior) {
|
||||
metallic = clamp(metallic, 0.0, 1.0);
|
||||
transmission = clamp(transmission, 0.0, 1.0);
|
||||
|
||||
subsurface = subsurface * (1.0 - metallic);
|
||||
|
||||
albedo = mix(color.rgb, subsurface_color.rgb, subsurface);
|
||||
sss_strength_out = subsurface;
|
||||
metallic_out = metallic;
|
||||
specular_out = pow((IOR - 1.0)/(IOR + 1.0), 2)/0.08;
|
||||
roughness_out = roughness;
|
||||
clearcoat_out = clearcoat * (1.0 - transmission);
|
||||
clearcoat_gloss_out = 1.0 - clearcoat_roughness;
|
||||
anisotropy_out = clamp(anisotropy, 0.0, 1.0);
|
||||
transmission_out = (1.0 - transmission) * (1.0 - metallic);
|
||||
ior = IOR;
|
||||
}
|
||||
|
||||
void vertex () {
|
||||
}
|
||||
|
||||
void fragment () {
|
||||
|
||||
// node: 'Principled BSDF'
|
||||
// type: 'ShaderNodeBsdfPrincipled'
|
||||
// input sockets handling
|
||||
vec4 node0_in0_basecolor = vec4(0.6399999856948853, 0.6399999856948853,
|
||||
0.6399999856948853, 1.0);
|
||||
float node0_in1_subsurface = float(0.0);
|
||||
vec3 node0_in2_subsurfaceradius = vec3(1.0, 0.20000000298023224,
|
||||
0.10000000149011612);
|
||||
vec4 node0_in3_subsurfacecolor = vec4(0.800000011920929, 0.800000011920929,
|
||||
0.800000011920929, 1.0);
|
||||
float node0_in4_metallic = float(0.0);
|
||||
float node0_in5_specular = float(0.019999999552965164);
|
||||
float node0_in6_speculartint = float(0.0);
|
||||
float node0_in7_roughness = float(1.0);
|
||||
float node0_in8_anisotropic = float(0.0);
|
||||
float node0_in9_anisotropicrotation = float(0.0);
|
||||
float node0_in10_sheen = float(0.0);
|
||||
float node0_in11_sheentint = float(0.5);
|
||||
float node0_in12_clearcoat = float(0.0);
|
||||
float node0_in13_clearcoatroughness = float(0.029999999329447746);
|
||||
float node0_in14_ior = float(1.0);
|
||||
float node0_in15_transmission = float(0.0);
|
||||
float node0_in16_transmissionroughness = float(0.0);
|
||||
vec4 node0_in17_emission = vec4(0.0, 0.0, 0.0, 1.0);
|
||||
float node0_in18_alpha = float(1.0);
|
||||
vec3 node0_in19_normal = NORMAL;
|
||||
vec3 node0_in20_clearcoatnormal = vec3(0.0, 0.0, 0.0);
|
||||
vec3 node0_in21_tangent = TANGENT;
|
||||
// output sockets definitions
|
||||
vec3 node0_bsdf_out0_albedo;
|
||||
float node0_bsdf_out1_sss_strength;
|
||||
float node0_bsdf_out3_specular;
|
||||
float node0_bsdf_out2_metallic;
|
||||
float node0_bsdf_out4_roughness;
|
||||
float node0_bsdf_out5_clearcoat;
|
||||
float node0_bsdf_out6_clearcoat_gloss;
|
||||
float node0_bsdf_out7_anisotropy;
|
||||
float node0_bsdf_out8_transmission;
|
||||
float node0_bsdf_out9_ior;
|
||||
|
||||
node_bsdf_principled(node0_in0_basecolor, node0_in1_subsurface,
|
||||
node0_in3_subsurfacecolor, node0_in4_metallic, node0_in5_specular,
|
||||
node0_in7_roughness, node0_in12_clearcoat, node0_in13_clearcoatroughness,
|
||||
node0_in8_anisotropic, node0_in15_transmission, node0_in14_ior,
|
||||
node0_bsdf_out0_albedo, node0_bsdf_out1_sss_strength, node0_bsdf_out2_metallic,
|
||||
node0_bsdf_out3_specular, node0_bsdf_out4_roughness, node0_bsdf_out5_clearcoat,
|
||||
node0_bsdf_out6_clearcoat_gloss, node0_bsdf_out7_anisotropy,
|
||||
node0_bsdf_out8_transmission, node0_bsdf_out9_ior);
|
||||
|
||||
|
||||
ALBEDO = node0_bsdf_out0_albedo;
|
||||
SSS_STRENGTH = node0_bsdf_out1_sss_strength;
|
||||
SPECULAR = node0_bsdf_out3_specular;
|
||||
METALLIC = node0_bsdf_out2_metallic;
|
||||
ROUGHNESS = node0_bsdf_out4_roughness;
|
||||
CLEARCOAT = node0_bsdf_out5_clearcoat;
|
||||
CLEARCOAT_GLOSS = node0_bsdf_out6_clearcoat_gloss;
|
||||
NORMAL = node0_in19_normal;
|
||||
// uncomment it when you need it
|
||||
// TRANSMISSION = vec3(1.0, 1.0, 1.0) * node0_bsdf_out8_transmission;
|
||||
// uncomment it when you are modifing TANGENT
|
||||
// TANGENT = normalize(cross(cross(node0_in21_tangent, NORMAL), NORMAL));
|
||||
// BINORMAL = cross(TANGENT, NORMAL);
|
||||
// uncomment it when you have tangent(UV) set
|
||||
// ANISOTROPY = node0_bsdf_out7_anisotropy;
|
||||
}
|
||||
"
|
||||
|
||||
[sub_resource id=5 type="ShaderMaterial"]
|
||||
|
||||
resource_name = ""
|
||||
shader = SubResource(4)
|
||||
|
||||
[sub_resource id=6 type="ArrayMesh"]
|
||||
|
||||
resource_name = "closet_door_left"
|
||||
surfaces/0 = {
|
||||
"material":SubResource(5),
|
||||
"primitive":4,
|
||||
"arrays":[
|
||||
Vector3Array(0.00635256, 1.82395, -0.00049841, 0.366967, 0.817119, -0.00049847, 0.366967, 1.09745, -0.00049847, 0.399134, 0.817119, -0.00049847, 0.42621, 0.0835765, -0.00049847, 0.00635256, 1.82395, -0.00049841, 0.42621, 1.82395, -0.0324249, 0.00635256, 1.82395, -0.0324249, 0.000172034, 1.82395, -0.00049841, 0.00635256, 0.0835765, -0.00049847, 0.00635256, 0.0835765, -0.032425, 0.42621, 0.0835765, -0.00049847, 0.00635256, 0.0835765, -0.00049847, 0.42621, 1.82395, -0.00049841, 0.42621, 0.0835765, -0.032425, 0.42621, 1.82395, -0.0324249, 0.00635256, 1.82395, -0.0324249, 0.42621, 0.0835765, -0.032425, 0.00635256, 0.0835765, -0.032425, 0.000172034, 1.82395, -0.00049841, 0.000172034, 1.82395, -0.0324249, 0.000172034, 1.82395, -0.0324249, 0.000172034, 0.0835765, -0.00049847, 0.000172034, 1.82395, -0.00049841, 0.000172034, 0.0835765, -0.032425, 0.000172034, 0.0835765, -0.032425, 0.000172034, 1.82395, -0.0324249, 0.366967, 0.817119, 0.017358, 0.366967, 1.09745, -0.00049847, 0.366967, 0.817119, -0.00049847, 0.399134, 0.817119, 0.017358, 0.366967, 0.817119, -0.00049847, 0.399134, 0.817119, -0.00049847, 0.366967, 1.09745, 0.017358, 0.399134, 0.817119, 0.017358, 0.399134, 1.09745, 0.017358, 0.366967, 1.09745, 0.017358, 0.399134, 1.09745, -0.00049847, 0.366967, 1.09745, -0.00049847, 0.399134, 1.09745, 0.017358, 0.399134, 0.817119, -0.00049847, 0.399134, 1.09745, -0.00049847, 0.399134, 1.09745, -0.00049847, 0.42621, 1.82395, -0.00049841, 0.42621, 1.82395, -0.00049841, 0.000172034, 0.0835765, -0.00049847, 0.42621, 0.0835765, -0.032425, 0.42621, 0.0835765, -0.00049847, 0.42621, 1.82395, -0.0324249, 0.000172034, 0.0835765, -0.032425, 0.000172034, 0.0835765, -0.00049847, 0.366967, 1.09745, 0.017358, 0.366967, 0.817119, 0.017358, 0.366967, 0.817119, 0.017358, 0.399134, 1.09745, 0.017358, 0.399134, 0.817119, 0.017358),
|
||||
Vector3Array(1.37725e-08, -4.98629e-08, 1.0, 4.66681e-08, -1.70523e-08, 1.0, 9.40305e-08, -3.53204e-08, 1.0, -6.18584e-07, -2.24412e-08, 1.0, -2.17942e-08, -8.43063e-10, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, -3.42443e-08, 1.0, 1.01322e-08, -2.21122e-08, 1.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 3.41533e-08, -1.0, 0.0, 3.31384e-08, -1.0, 0.0, 3.28035e-08, -1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, 3.24748e-08, -1.0, 0.0, 3.51744e-08, -1.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, -1.45022e-06, -2.79417e-08, 1.0, -3.04242e-08, -8.06921e-08, 1.0, 0.0, 1.0, 0.0, 0.0, -3.42443e-08, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 3.31383e-08, -1.0, -1.0, 0.0, 0.0, 0.0, -1.0, 0.0, -1.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0),
|
||||
null, ; No Tangents,
|
||||
null, ; no Vertex Colors,
|
||||
null, ; No UV1,
|
||||
null, ; No UV2,
|
||||
null, ; No Bones,
|
||||
null, ; No Weights,
|
||||
IntArray(0, 2, 1, 3, 4, 1, 5, 7, 6, 8, 0, 9, 10, 12, 11, 13, 15, 14, 16, 18, 17, 19, 20, 7, 21, 23, 22, 12, 10, 24, 16, 26, 25, 27, 29, 28, 30, 32, 31, 33, 35, 34, 36, 38, 37, 39, 41, 40, 0, 1, 9, 9, 1, 4, 42, 2, 43, 43, 2, 0, 4, 3, 43, 43, 3, 42, 5, 6, 44, 8, 9, 45, 10, 11, 46, 13, 14, 47, 16, 17, 48, 19, 7, 5, 21, 22, 49, 12, 24, 50, 16, 25, 18, 27, 28, 51, 30, 31, 52, 33, 34, 53, 36, 37, 54, 39, 40, 55)
|
||||
],
|
||||
"morph_arrays":[]
|
||||
}
|
||||
|
||||
[sub_resource id=7 type="Animation"]
|
||||
|
||||
resource_name = "closed"
|
||||
step = 0.1
|
||||
length = 0.0416667
|
||||
loop = false
|
||||
tracks/0/type = "transform"
|
||||
tracks/0/path = NodePath(".:")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/keys = [0.0, 1.0, -0.408956, 0.0, 0.672461, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0416667, 1.0, -0.408956, 0.0, 0.672461, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0]
|
||||
|
||||
[sub_resource id=8 type="Animation"]
|
||||
|
||||
resource_name = "default"
|
||||
step = 0.1
|
||||
length = 0.0416667
|
||||
loop = false
|
||||
tracks/0/type = "transform"
|
||||
tracks/0/path = NodePath(".:")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/keys = [0.0, 1.0, -0.408956, 0.0, 0.672461, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0416667, 1.0, -0.408956, 0.0, 0.672461, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0]
|
||||
|
||||
[sub_resource id=9 type="Animation"]
|
||||
|
||||
resource_name = "closed"
|
||||
step = 0.1
|
||||
length = 0.0416667
|
||||
loop = false
|
||||
tracks/0/type = "transform"
|
||||
tracks/0/path = NodePath(".:")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/keys = [0.0, 1.0, -0.408956, 0.0, 0.672461, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0416667, 1.0, -0.408956, 0.0, 0.672461, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0]
|
||||
|
||||
[sub_resource id=10 type="Animation"]
|
||||
|
||||
resource_name = "open"
|
||||
step = 0.1
|
||||
length = 0.0416667
|
||||
loop = false
|
||||
tracks/0/type = "transform"
|
||||
tracks/0/path = NodePath(".:")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/keys = [0.0, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.974314, 0.0, 0.225194, 1.0, 1.0, 1.0, 0.0416667, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.974314, 0.0, 0.225194, 1.0, 1.0, 1.0]
|
||||
|
||||
[sub_resource id=11 type="Animation"]
|
||||
|
||||
resource_name = "openning"
|
||||
step = 0.1
|
||||
length = 1.20833
|
||||
loop = false
|
||||
tracks/0/type = "transform"
|
||||
tracks/0/path = NodePath(".:")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/keys = [0.0, 1.0, -0.408956, 0.0, 0.672461, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0416667, 1.0, -0.408956, 0.0, 0.672461, 0.0, -6.39612e-05, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0833333, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.00051169, 0.0, 1.0, 1.0, 1.0, 1.0, 0.125, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.00172695, 0.0, 0.999999, 1.0, 1.0, 1.0, 0.166667, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.00409351, 0.0, 0.999992, 1.0, 1.0, 1.0, 0.208333, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.00799507, 0.0, 0.999968, 1.0, 1.0, 1.0, 0.25, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.0138152, 0.0, 0.999905, 1.0, 1.0, 1.0, 0.291667, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.0219369, 0.0, 0.999759, 1.0, 1.0, 1.0, 0.333333, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.0327423, 0.0, 0.999464, 1.0, 1.0, 1.0, 0.375, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.0466108, 0.0, 0.998913, 1.0, 1.0, 1.0, 0.416667, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.0639176, 0.0, 0.997955, 1.0, 1.0, 1.0, 0.458333, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.0850296, 0.0, 0.996378, 1.0, 1.0, 1.0, 0.5, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.1103, 0.0, 0.993898, 1.0, 1.0, 1.0, 0.541667, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.140061, 0.0, 0.990143, 1.0, 1.0, 1.0, 0.583333, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.17461, 0.0, 0.984638, 1.0, 1.0, 1.0, 0.625, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.214196, 0.0, 0.976791, 1.0, 1.0, 1.0, 0.666667, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.258999, 0.0, 0.965878, 1.0, 1.0, 1.0, 0.708333, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.309095, 0.0, 0.951031, 1.0, 1.0, 1.0, 0.75, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.364431, 0.0, 0.93123, 1.0, 1.0, 1.0, 0.791667, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.424772, 0.0, 0.9053, 1.0, 1.0, 1.0, 0.833333, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.489651, 0.0, 0.871918, 1.0, 1.0, 1.0, 0.875, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.558308, 0.0, 0.829634, 1.0, 1.0, 1.0, 0.916667, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.629616, 0.0, 0.776906, 1.0, 1.0, 1.0, 0.958333, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.70201, 0.0, 0.712167, 1.0, 1.0, 1.0, 1.0, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.779959, 0.0, 0.625831, 1.0, 1.0, 1.0, 1.04167, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.856819, 0.0, 0.515617, 1.0, 1.0, 1.0, 1.08333, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.918442, 0.0, 0.395557, 1.0, 1.0, 1.0, 1.125, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.958661, 0.0, 0.284551, 1.0, 1.0, 1.0, 1.16667, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.979097, 0.0, 0.203393, 1.0, 1.0, 1.0, 1.20833, 1.0, -0.408956, 0.0, 0.672461, 0.0, -0.985068, 0.0, 0.172165, 1.0, 1.0, 1.0]
|
||||
|
||||
[sub_resource id=12 type="Shader"]
|
||||
|
||||
resource_name = "Shader Nodetree"
|
||||
code = "shader_type spatial;
|
||||
render_mode blend_mix, depth_draw_always, cull_back, diffuse_burley, specular_schlick_ggx;
|
||||
|
||||
|
||||
|
||||
void node_bsdf_principled(vec4 color, float subsurface, vec4 subsurface_color,
|
||||
float metallic, float specular, float roughness, float clearcoat,
|
||||
float clearcoat_roughness, float anisotropy, float transmission,
|
||||
float IOR, out vec3 albedo, out float sss_strength_out,
|
||||
out float metallic_out, out float specular_out,
|
||||
out float roughness_out, out float clearcoat_out,
|
||||
out float clearcoat_gloss_out, out float anisotropy_out,
|
||||
out float transmission_out, out float ior) {
|
||||
metallic = clamp(metallic, 0.0, 1.0);
|
||||
transmission = clamp(transmission, 0.0, 1.0);
|
||||
|
||||
subsurface = subsurface * (1.0 - metallic);
|
||||
|
||||
albedo = mix(color.rgb, subsurface_color.rgb, subsurface);
|
||||
sss_strength_out = subsurface;
|
||||
metallic_out = metallic;
|
||||
specular_out = pow((IOR - 1.0)/(IOR + 1.0), 2)/0.08;
|
||||
roughness_out = roughness;
|
||||
clearcoat_out = clearcoat * (1.0 - transmission);
|
||||
clearcoat_gloss_out = 1.0 - clearcoat_roughness;
|
||||
anisotropy_out = clamp(anisotropy, 0.0, 1.0);
|
||||
transmission_out = (1.0 - transmission) * (1.0 - metallic);
|
||||
ior = IOR;
|
||||
}
|
||||
|
||||
void vertex () {
|
||||
}
|
||||
|
||||
void fragment () {
|
||||
|
||||
// node: 'Principled BSDF'
|
||||
// type: 'ShaderNodeBsdfPrincipled'
|
||||
// input sockets handling
|
||||
vec4 node0_in0_basecolor = vec4(0.6399999856948853, 0.6399999856948853,
|
||||
0.6399999856948853, 1.0);
|
||||
float node0_in1_subsurface = float(0.0);
|
||||
vec3 node0_in2_subsurfaceradius = vec3(1.0, 0.20000000298023224,
|
||||
0.10000000149011612);
|
||||
vec4 node0_in3_subsurfacecolor = vec4(0.800000011920929, 0.800000011920929,
|
||||
0.800000011920929, 1.0);
|
||||
float node0_in4_metallic = float(0.0);
|
||||
float node0_in5_specular = float(0.019999999552965164);
|
||||
float node0_in6_speculartint = float(0.0);
|
||||
float node0_in7_roughness = float(1.0);
|
||||
float node0_in8_anisotropic = float(0.0);
|
||||
float node0_in9_anisotropicrotation = float(0.0);
|
||||
float node0_in10_sheen = float(0.0);
|
||||
float node0_in11_sheentint = float(0.5);
|
||||
float node0_in12_clearcoat = float(0.0);
|
||||
float node0_in13_clearcoatroughness = float(0.029999999329447746);
|
||||
float node0_in14_ior = float(1.0);
|
||||
float node0_in15_transmission = float(0.0);
|
||||
float node0_in16_transmissionroughness = float(0.0);
|
||||
vec4 node0_in17_emission = vec4(0.0, 0.0, 0.0, 1.0);
|
||||
float node0_in18_alpha = float(1.0);
|
||||
vec3 node0_in19_normal = NORMAL;
|
||||
vec3 node0_in20_clearcoatnormal = vec3(0.0, 0.0, 0.0);
|
||||
vec3 node0_in21_tangent = TANGENT;
|
||||
// output sockets definitions
|
||||
vec3 node0_bsdf_out0_albedo;
|
||||
float node0_bsdf_out1_sss_strength;
|
||||
float node0_bsdf_out3_specular;
|
||||
float node0_bsdf_out2_metallic;
|
||||
float node0_bsdf_out4_roughness;
|
||||
float node0_bsdf_out5_clearcoat;
|
||||
float node0_bsdf_out6_clearcoat_gloss;
|
||||
float node0_bsdf_out7_anisotropy;
|
||||
float node0_bsdf_out8_transmission;
|
||||
float node0_bsdf_out9_ior;
|
||||
|
||||
node_bsdf_principled(node0_in0_basecolor, node0_in1_subsurface,
|
||||
node0_in3_subsurfacecolor, node0_in4_metallic, node0_in5_specular,
|
||||
node0_in7_roughness, node0_in12_clearcoat, node0_in13_clearcoatroughness,
|
||||
node0_in8_anisotropic, node0_in15_transmission, node0_in14_ior,
|
||||
node0_bsdf_out0_albedo, node0_bsdf_out1_sss_strength, node0_bsdf_out2_metallic,
|
||||
node0_bsdf_out3_specular, node0_bsdf_out4_roughness, node0_bsdf_out5_clearcoat,
|
||||
node0_bsdf_out6_clearcoat_gloss, node0_bsdf_out7_anisotropy,
|
||||
node0_bsdf_out8_transmission, node0_bsdf_out9_ior);
|
||||
|
||||
|
||||
ALBEDO = node0_bsdf_out0_albedo;
|
||||
SSS_STRENGTH = node0_bsdf_out1_sss_strength;
|
||||
SPECULAR = node0_bsdf_out3_specular;
|
||||
METALLIC = node0_bsdf_out2_metallic;
|
||||
ROUGHNESS = node0_bsdf_out4_roughness;
|
||||
CLEARCOAT = node0_bsdf_out5_clearcoat;
|
||||
CLEARCOAT_GLOSS = node0_bsdf_out6_clearcoat_gloss;
|
||||
NORMAL = node0_in19_normal;
|
||||
// uncomment it when you need it
|
||||
// TRANSMISSION = vec3(1.0, 1.0, 1.0) * node0_bsdf_out8_transmission;
|
||||
// uncomment it when you are modifing TANGENT
|
||||
// TANGENT = normalize(cross(cross(node0_in21_tangent, NORMAL), NORMAL));
|
||||
// BINORMAL = cross(TANGENT, NORMAL);
|
||||
// uncomment it when you have tangent(UV) set
|
||||
// ANISOTROPY = node0_bsdf_out7_anisotropy;
|
||||
}
|
||||
"
|
||||
|
||||
[sub_resource id=13 type="ShaderMaterial"]
|
||||
|
||||
resource_name = ""
|
||||
shader = SubResource(12)
|
||||
|
||||
[sub_resource id=14 type="ArrayMesh"]
|
||||
|
||||
resource_name = "closet_door_right"
|
||||
surfaces/0 = {
|
||||
"material":SubResource(13),
|
||||
"primitive":4,
|
||||
"arrays":[
|
||||
Vector3Array(-0.417257, 1.82395, 0.000198439, -0.39682, 1.09745, 0.00019838, -0.364652, 1.09745, 0.00019838, -0.00103214, 0.0835765, 0.00019838, -0.364652, 0.817119, 0.00019838, -0.417257, 1.82395, 0.000198439, -0.00103214, 1.82395, -0.0317281, -0.417257, 1.82395, -0.0317281, -0.423438, 1.82395, 0.000198439, -0.417257, 0.0835765, 0.00019838, -0.417257, 0.0835765, -0.0317281, -0.00103214, 0.0835765, 0.00019838, -0.417257, 0.0835765, 0.00019838, -0.00103214, 1.82395, 0.000198439, -0.00103214, 0.0835765, -0.0317281, -0.00103214, 1.82395, -0.0317281, -0.417257, 1.82395, -0.0317281, -0.00103214, 0.0835765, -0.0317281, -0.417257, 0.0835765, -0.0317281, -0.423438, 1.82395, 0.000198439, -0.423438, 1.82395, -0.0317281, -0.423438, 1.82395, -0.0317281, -0.423438, 0.0835765, 0.00019838, -0.423438, 1.82395, 0.000198439, -0.423438, 0.0835765, -0.0317281, -0.423438, 0.0835765, -0.0317281, -0.423438, 1.82395, -0.0317281, -0.39682, 0.817119, 0.0180549, -0.39682, 1.09745, 0.00019838, -0.39682, 0.817119, 0.00019838, -0.364652, 0.817119, 0.0180549, -0.39682, 0.817119, 0.00019838, -0.364652, 0.817119, 0.00019838, -0.39682, 1.09745, 0.0180549, -0.364652, 0.817119, 0.0180549, -0.364652, 1.09745, 0.0180549, -0.39682, 1.09745, 0.0180549, -0.364652, 1.09745, 0.00019838, -0.39682, 1.09745, 0.00019838, -0.364652, 1.09745, 0.0180549, -0.364652, 0.817119, 0.00019838, -0.364652, 1.09745, 0.00019838, -0.39682, 0.817119, 0.00019838, -0.00103214, 1.82395, 0.000198439, -0.00103214, 1.82395, 0.000198439, -0.423438, 0.0835765, 0.00019838, -0.00103214, 0.0835765, -0.0317281, -0.00103214, 0.0835765, 0.00019838, -0.00103214, 1.82395, -0.0317281, -0.423438, 0.0835765, -0.0317281, -0.423438, 0.0835765, 0.00019838, -0.39682, 1.09745, 0.0180549, -0.39682, 0.817119, 0.0180549, -0.39682, 0.817119, 0.0180549, -0.364652, 1.09745, 0.0180549, -0.364652, 0.817119, 0.0180549),
|
||||
Vector3Array(1.52159e-08, -5.76213e-08, 1.0, 1.9269e-06, -2.78361e-08, 1.0, -4.72805e-08, -5.23765e-08, 1.0, -2.09344e-08, -7.50606e-09, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, -3.42418e-08, 1.0, 1.08996e-08, -1.7435e-08, 1.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 3.44918e-08, -1.0, 0.0, 3.56146e-08, -1.0, 0.0, 3.55853e-08, -1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, 3.51717e-08, -1.0, 0.0, 3.51717e-08, -1.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 8.19491e-07, -2.24756e-08, 1.0, -2.82116e-08, -6.79092e-08, 1.0, 0.0, 1.0, 0.0, 0.0, -3.42629e-08, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 3.34275e-08, -1.0, -1.0, 0.0, 0.0, 0.0, -1.0, 0.0, -1.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0),
|
||||
null, ; No Tangents,
|
||||
null, ; no Vertex Colors,
|
||||
null, ; No UV1,
|
||||
null, ; No UV2,
|
||||
null, ; No Bones,
|
||||
null, ; No Weights,
|
||||
IntArray(0, 2, 1, 3, 4, 2, 5, 7, 6, 8, 0, 9, 10, 12, 11, 13, 15, 14, 16, 18, 17, 19, 20, 7, 21, 23, 22, 12, 10, 24, 16, 26, 25, 27, 29, 28, 30, 32, 31, 33, 35, 34, 36, 38, 37, 39, 41, 40, 0, 42, 9, 0, 1, 42, 3, 2, 43, 43, 2, 0, 42, 4, 9, 9, 4, 3, 5, 6, 44, 8, 9, 45, 10, 11, 46, 13, 14, 47, 16, 17, 48, 19, 7, 5, 21, 22, 49, 12, 24, 50, 16, 25, 18, 27, 28, 51, 30, 31, 52, 33, 34, 53, 36, 37, 54, 39, 40, 55)
|
||||
],
|
||||
"morph_arrays":[]
|
||||
}
|
||||
|
||||
[sub_resource id=15 type="Animation"]
|
||||
|
||||
resource_name = "closed"
|
||||
step = 0.1
|
||||
length = 0.0416667
|
||||
loop = false
|
||||
tracks/0/type = "transform"
|
||||
tracks/0/path = NodePath(".:")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/keys = [0.0, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0416667, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0]
|
||||
|
||||
[sub_resource id=16 type="Animation"]
|
||||
|
||||
resource_name = "default"
|
||||
step = 0.1
|
||||
length = 0.0416667
|
||||
loop = false
|
||||
tracks/0/type = "transform"
|
||||
tracks/0/path = NodePath(".:")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/keys = [0.0, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0416667, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0]
|
||||
|
||||
[sub_resource id=17 type="Animation"]
|
||||
|
||||
resource_name = "closed"
|
||||
step = 0.1
|
||||
length = 0.0416667
|
||||
loop = false
|
||||
tracks/0/type = "transform"
|
||||
tracks/0/path = NodePath(".:")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/keys = [0.0, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0416667, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0]
|
||||
|
||||
[sub_resource id=18 type="Animation"]
|
||||
|
||||
resource_name = "open_r"
|
||||
step = 0.1
|
||||
length = 0.0416667
|
||||
loop = false
|
||||
tracks/0/type = "transform"
|
||||
tracks/0/path = NodePath(".:")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/keys = [0.0, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.986832, 0.0, 0.161751, 1.0, 1.0, 1.0, 0.0416667, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.986832, 0.0, 0.161751, 1.0, 1.0, 1.0]
|
||||
|
||||
[sub_resource id=19 type="Animation"]
|
||||
|
||||
resource_name = "openning_r"
|
||||
step = 0.1
|
||||
length = 1.20833
|
||||
loop = false
|
||||
tracks/0/type = "transform"
|
||||
tracks/0/path = NodePath(".:")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/keys = [0.0, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0416667, 1.0, 0.445465, 0.0, 0.672461, 0.0, 5.71012e-05, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0833333, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.000456809, 0.0, 1.0, 1.0, 1.0, 1.0, 0.125, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.00154173, 0.0, 0.999999, 1.0, 1.0, 1.0, 0.166667, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.00365447, 0.0, 0.999993, 1.0, 1.0, 1.0, 0.208333, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.00713759, 0.0, 0.999975, 1.0, 1.0, 1.0, 0.25, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.0123335, 0.0, 0.999924, 1.0, 1.0, 1.0, 0.291667, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.0195844, 0.0, 0.999808, 1.0, 1.0, 1.0, 0.333333, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.0292316, 0.0, 0.999573, 1.0, 1.0, 1.0, 0.375, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.0416147, 0.0, 0.999134, 1.0, 1.0, 1.0, 0.416667, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.0570701, 0.0, 0.99837, 1.0, 1.0, 1.0, 0.458333, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.0759285, 0.0, 0.997113, 1.0, 1.0, 1.0, 0.5, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.0985108, 0.0, 0.995136, 1.0, 1.0, 1.0, 0.541667, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.125122, 0.0, 0.992141, 1.0, 1.0, 1.0, 0.583333, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.156045, 0.0, 0.98775, 1.0, 1.0, 1.0, 0.625, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.191526, 0.0, 0.981488, 1.0, 1.0, 1.0, 0.666667, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.23176, 0.0, 0.972773, 1.0, 1.0, 1.0, 0.708333, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.276873, 0.0, 0.960907, 1.0, 1.0, 1.0, 0.75, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.326893, 0.0, 0.945061, 1.0, 1.0, 1.0, 0.791667, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.38172, 0.0, 0.924278, 1.0, 1.0, 1.0, 0.833333, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.441087, 0.0, 0.897465, 1.0, 1.0, 1.0, 0.875, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.50451, 0.0, 0.863406, 1.0, 1.0, 1.0, 0.916667, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.571238, 0.0, 0.820785, 1.0, 1.0, 1.0, 0.958333, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.640193, 0.0, 0.768214, 1.0, 1.0, 1.0, 1.0, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.709907, 0.0, 0.704295, 1.0, 1.0, 1.0, 1.04167, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.793713, 0.0, 0.608293, 1.0, 1.0, 1.0, 1.08333, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.881148, 0.0, 0.47284, 1.0, 1.0, 1.0, 1.125, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.945073, 0.0, 0.326859, 1.0, 1.0, 1.0, 1.16667, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.977812, 0.0, 0.209486, 1.0, 1.0, 1.0, 1.20833, 1.0, 0.445465, 0.0, 0.672461, 0.0, 0.986832, 0.0, 0.161751, 1.0, 1.0, 1.0]
|
||||
|
||||
[node type="Spatial" name="Scene"]
|
||||
|
||||
[node name="closet-col" type="MeshInstance" parent="."]
|
||||
|
||||
mesh = SubResource(3)
|
||||
visible = true
|
||||
transform = Transform(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0)
|
||||
|
||||
[node name="closet_door_left-col" type="MeshInstance" parent="closet-col"]
|
||||
|
||||
mesh = SubResource(6)
|
||||
visible = true
|
||||
transform = Transform(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, -0.408956, 0.0, 0.672461)
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="closet-col/closet_door_left-col"]
|
||||
|
||||
root_node = NodePath("..:")
|
||||
anims/closed = SubResource(9)
|
||||
anims/default = SubResource(8)
|
||||
anims/open = SubResource(10)
|
||||
anims/openning = SubResource(11)
|
||||
|
||||
[node name="closet_door_right-col" type="MeshInstance" parent="closet-col"]
|
||||
|
||||
mesh = SubResource(14)
|
||||
visible = true
|
||||
transform = Transform(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.445465, 0.0, 0.672461)
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="closet-col/closet_door_right-col"]
|
||||
|
||||
root_node = NodePath("..:")
|
||||
anims/closed = SubResource(17)
|
||||
anims/default = SubResource(16)
|
||||
anims/open_r = SubResource(18)
|
||||
anims/openning_r = SubResource(19)
|
||||
1063
proto3/godot/scenes/furniture/closet.escn.import
Normal file
1063
proto3/godot/scenes/furniture/closet.escn.import
Normal file
File diff suppressed because it is too large
Load Diff
131
proto3/godot/scenes/furniture/closet.gd
Normal file
131
proto3/godot/scenes/furniture/closet.gd
Normal file
@@ -0,0 +1,131 @@
|
||||
extends Spatial
|
||||
|
||||
|
||||
# Declare member variables here. Examples:
|
||||
# var a = 2
|
||||
# var b = "text"
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
enum {DOOR_OPEN, DOOR_CLOSED}
|
||||
var door_l_state = DOOR_CLOSED
|
||||
var door_r_state = DOOR_CLOSED
|
||||
var act_l_delay = 0.0
|
||||
var act_r_delay = 0.0
|
||||
var l_act = false
|
||||
var r_act = false
|
||||
var hide_delay = 4.0
|
||||
var hidden = false
|
||||
func activate_l_door(def):
|
||||
if def && door_l_state == DOOR_CLOSED:
|
||||
$closet/closet_door_left/AnimationPlayer.play("openning")
|
||||
door_l_state = DOOR_OPEN
|
||||
if !def && door_l_state == DOOR_OPEN:
|
||||
$closet/closet_door_left/AnimationPlayer.play_backwards("openning")
|
||||
door_l_state = DOOR_CLOSED
|
||||
func activate_r_door(def):
|
||||
if def && door_r_state == DOOR_CLOSED:
|
||||
$closet/closet_door_right/AnimationPlayer.play("openning_r")
|
||||
door_r_state = DOOR_OPEN
|
||||
if !def && door_r_state == DOOR_OPEN:
|
||||
$closet/closet_door_right/AnimationPlayer.play_backwards("openning_r")
|
||||
door_r_state = DOOR_CLOSED
|
||||
func _ready():
|
||||
add_to_group("closet")
|
||||
add_to_group("hide_spot")
|
||||
var ret = $left.connect("body_entered", self, "body_enter")
|
||||
assert(ret == OK)
|
||||
ret = $left.connect("body_exited", self, "body_exit")
|
||||
assert(ret == OK)
|
||||
ret = $right.connect("body_entered", self, "body_enter")
|
||||
assert(ret == OK)
|
||||
ret = $right.connect("body_exited", self, "body_exit")
|
||||
assert(ret == OK)
|
||||
ret = $Timer.connect("timeout", self, "free_character")
|
||||
assert(ret == OK)
|
||||
|
||||
func _process(delta):
|
||||
if l_act:
|
||||
act_l_delay += delta
|
||||
if act_l_delay >= 1.5:
|
||||
if door_l_state == DOOR_CLOSED:
|
||||
door_l_state = DOOR_OPEN
|
||||
l_act = false
|
||||
if r_act:
|
||||
act_l_delay += delta
|
||||
if act_l_delay >= 1.5:
|
||||
if door_l_state == DOOR_CLOSED:
|
||||
door_l_state = DOOR_OPEN
|
||||
r_act = false
|
||||
func free_character():
|
||||
var c = get_meta("hidden_character")
|
||||
c.remove_collision_exception_with($closet/closet_door_left/static_collision)
|
||||
c.remove_collision_exception_with($closet/closet_door_right/static_collision)
|
||||
c.remove_collision_exception_with($closet/static_collision)
|
||||
c.global_transform = $exit_spot.global_transform
|
||||
yield(get_tree().create_timer(0.1), "timeout")
|
||||
c.global_transform = $exit_spot.global_transform
|
||||
c.set_meta("smart_object", false)
|
||||
c.do_walk()
|
||||
hidden = false
|
||||
set_meta("hidden_character", null)
|
||||
func body_enter(body):
|
||||
if !body.is_in_group("characters"):
|
||||
return
|
||||
if body.get_meta("grabbing"):
|
||||
return
|
||||
# TODO
|
||||
if body.get_meta("grabbed"):
|
||||
return
|
||||
if !hidden:
|
||||
if body == global.player:
|
||||
print("CLOSET")
|
||||
activate_l_door(true)
|
||||
activate_r_door(true)
|
||||
elif body.has_meta("action"):
|
||||
var action = body.get_meta("action")
|
||||
if action == "hide":
|
||||
activate_l_door(true)
|
||||
activate_r_door(true)
|
||||
body.set_meta("smart_object", true)
|
||||
body.do_stop()
|
||||
set_meta("hidden_character", body)
|
||||
hidden = true
|
||||
yield(get_tree().create_timer(hide_delay), "timeout")
|
||||
body.add_collision_exception_with($closet/closet_door_left/static_collision)
|
||||
body.add_collision_exception_with($closet/closet_door_right/static_collision)
|
||||
body.add_collision_exception_with($closet/static_collision)
|
||||
body.global_transform = $hide_spot.global_transform
|
||||
yield(get_tree().create_timer(0.1), "timeout")
|
||||
body.global_transform = $hide_spot.global_transform
|
||||
yield(get_tree().create_timer(hide_delay), "timeout")
|
||||
activate_l_door(false)
|
||||
activate_r_door(false)
|
||||
else:
|
||||
return
|
||||
else:
|
||||
activate_l_door(true)
|
||||
activate_r_door(true)
|
||||
else:
|
||||
if body == get_meta("hidden_character"):
|
||||
return
|
||||
if body == global.player:
|
||||
activate_l_door(true)
|
||||
activate_r_door(true)
|
||||
$Timer.start(4.0)
|
||||
elif body.has_meta("action"):
|
||||
var action = body.get_meta("action")
|
||||
if action == "hide":
|
||||
return
|
||||
if action == "patrol":
|
||||
# var c = get_meta("hidden_character")
|
||||
activate_l_door(true)
|
||||
activate_r_door(true)
|
||||
$Timer.start(4.0)
|
||||
func body_exit(_body):
|
||||
pass
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
#func _process(delta):
|
||||
# pass
|
||||
40
proto3/godot/scenes/furniture/closet.tscn
Normal file
40
proto3/godot/scenes/furniture/closet.tscn
Normal file
@@ -0,0 +1,40 @@
|
||||
[gd_scene load_steps=5 format=2]
|
||||
|
||||
[ext_resource path="res://scenes/furniture/closet.escn" type="PackedScene" id=1]
|
||||
[ext_resource path="res://scenes/furniture/closet.gd" type="Script" id=2]
|
||||
|
||||
[sub_resource type="BoxShape" id=1]
|
||||
extents = Vector3( 0.307138, 1, 0.229338 )
|
||||
|
||||
[sub_resource type="BoxShape" id=2]
|
||||
extents = Vector3( 0.30995, 1, 0.227319 )
|
||||
|
||||
[node name="closet" instance=ExtResource( 1 )]
|
||||
script = ExtResource( 2 )
|
||||
|
||||
[node name="AnimationPlayer" parent="closet/closet_door_left" index="0"]
|
||||
playback_process_mode = 0
|
||||
|
||||
[node name="AnimationPlayer" parent="closet/closet_door_right" index="0"]
|
||||
playback_process_mode = 0
|
||||
|
||||
[node name="left" type="Area" parent="." index="1"]
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape" parent="left" index="0"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.332212, 0, 0.920621 )
|
||||
shape = SubResource( 1 )
|
||||
|
||||
[node name="right" type="Area" parent="." index="2"]
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape" parent="right" index="0"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.314295, 0, 0.923483 )
|
||||
shape = SubResource( 2 )
|
||||
|
||||
[node name="hide_spot" type="Spatial" parent="." index="3"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.257012, 0.0920849, 0.345239 )
|
||||
|
||||
[node name="exit_spot" type="Spatial" parent="." index="4"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.257012, 0.0920849, 0.653263 )
|
||||
|
||||
[node name="Timer" type="Timer" parent="." index="5"]
|
||||
one_shot = true
|
||||
916
proto3/godot/scenes/furniture/table_chairs.escn
Normal file
916
proto3/godot/scenes/furniture/table_chairs.escn
Normal file
File diff suppressed because one or more lines are too long
1063
proto3/godot/scenes/furniture/table_chairs.escn.import
Normal file
1063
proto3/godot/scenes/furniture/table_chairs.escn.import
Normal file
File diff suppressed because it is too large
Load Diff
250
proto3/godot/scenes/furniture/table_chairs.gd
Normal file
250
proto3/godot/scenes/furniture/table_chairs.gd
Normal file
@@ -0,0 +1,250 @@
|
||||
extends Spatial
|
||||
|
||||
var playback = {
|
||||
"init": {
|
||||
"slave": [
|
||||
["travel", "parameters/main/playback", "SmartObject"],
|
||||
["travel", "parameters/main/SmartObject/playback", "bed"],
|
||||
["travel", "parameters/main/SmartObject/bed/playback", "bed_facing_up"],
|
||||
["set", "parameters/free_grabbed/current", 0]
|
||||
]
|
||||
},
|
||||
"engage": {
|
||||
"master": [
|
||||
["travel", "parameters/main/playback", "SmartObject"],
|
||||
["travel", "parameters/main/SmartObject/playback", "bed"],
|
||||
["travel", "parameters/main/SmartObject/bed/playback", "bed_start_m"],
|
||||
["set", "parameters/free_grabbed/current", 0]
|
||||
],
|
||||
"slave": [
|
||||
["travel", "parameters/main/playback", "SmartObject"],
|
||||
["travel", "parameters/main/SmartObject/playback", "bed"],
|
||||
["travel", "parameters/main/SmartObject/bed/playback", "bed_start"],
|
||||
["set", "parameters/free_grabbed/current", 0]
|
||||
]
|
||||
},
|
||||
"torture": {
|
||||
"master": [
|
||||
["travel", "parameters/main/playback", "SmartObject"],
|
||||
["travel", "parameters/main/SmartObject/playback", "bed"],
|
||||
["travel", "parameters/main/SmartObject/bed/playback", "beating_m"],
|
||||
["set", "parameters/free_grabbed/current", 0]
|
||||
],
|
||||
"slave": [
|
||||
["travel", "parameters/main/playback", "SmartObject"],
|
||||
["travel", "parameters/main/SmartObject/playback", "bed"],
|
||||
["travel", "parameters/main/SmartObject/bed/playback", "beating"],
|
||||
["set", "parameters/free_grabbed/current", 0]
|
||||
]
|
||||
},
|
||||
"force": {
|
||||
"master": [
|
||||
["travel", "parameters/main/playback", "SmartObject"],
|
||||
["travel", "parameters/main/SmartObject/playback", "bed"],
|
||||
["travel", "parameters/main/SmartObject/bed/playback", "forcing_m"],
|
||||
["set", "parameters/free_grabbed/current", 0]
|
||||
],
|
||||
"slave": [
|
||||
["travel", "parameters/main/playback", "SmartObject"],
|
||||
["travel", "parameters/main/SmartObject/playback", "bed"],
|
||||
["travel", "parameters/main/SmartObject/bed/playback", "forcing"],
|
||||
["set", "parameters/free_grabbed/current", 0]
|
||||
]
|
||||
},
|
||||
"force_s1": {
|
||||
"master": [
|
||||
["travel", "parameters/main/playback", "SmartObject"],
|
||||
["travel", "parameters/main/SmartObject/playback", "bed"],
|
||||
["travel", "parameters/main/SmartObject/bed/playback", "forcing_s1_m"],
|
||||
["set", "parameters/free_grabbed/current", 0]
|
||||
],
|
||||
"slave": [
|
||||
["travel", "parameters/main/playback", "SmartObject"],
|
||||
["travel", "parameters/main/SmartObject/playback", "bed"],
|
||||
["travel", "parameters/main/SmartObject/bed/playback", "forcing_s1"],
|
||||
["set", "parameters/free_grabbed/current", 0]
|
||||
]
|
||||
}
|
||||
}
|
||||
var state = "init"
|
||||
var active_state = ""
|
||||
var bodies = []
|
||||
func entered(body):
|
||||
if body.is_in_group("characters"):
|
||||
if body.get_meta("grabbing"):
|
||||
bodies.push_back(body)
|
||||
global.smart_object.push_back(body)
|
||||
# print("entered:", body.name)
|
||||
elif !body.get_meta("grabbed"):
|
||||
bodies.push_back(body)
|
||||
# for k in get_children():
|
||||
# if k.name.begins_with("chair"):
|
||||
# var t: RigidBody = k
|
||||
# t.contact_monitor = false
|
||||
# t.contacts_reported = 0
|
||||
# if t.mode != t.MODE_RIGID:
|
||||
# t.mode = t.MODE_RIGID
|
||||
func exited(body):
|
||||
if body in bodies:
|
||||
print("exited:", body.name)
|
||||
bodies.erase(body)
|
||||
global.smart_object.erase(body)
|
||||
var move_queue = []
|
||||
var captured = []
|
||||
func capture_slave(ch, orig_owner):
|
||||
ch.add_collision_exception_with(orig_owner)
|
||||
ch.set_meta("smart_object", true)
|
||||
ch.set_meta("orig_owner", get_path_to(orig_owner))
|
||||
for place in get_children():
|
||||
if place.name.begins_with("place"):
|
||||
if !place.has_meta("busy"):
|
||||
move_queue.push_back([ch, place])
|
||||
place.set_meta("busy", ch)
|
||||
# print("place: ", place.name)
|
||||
break
|
||||
captured.push_back(get_path_to(ch))
|
||||
func free_slave(ch):
|
||||
var orig_owner = ch.get_meta("orig_owner")
|
||||
ch.remove_collision_exception_with(get_node(orig_owner))
|
||||
ch.set_meta("smart_object", false)
|
||||
ch.remove_meta("orig_owner")
|
||||
var activate_delay = 0.0
|
||||
func activate():
|
||||
if activate_delay > 0.0:
|
||||
return
|
||||
if state in ["init", "engage", "torture"]:
|
||||
activate_state()
|
||||
activate_delay += 0.5
|
||||
func activate_state():
|
||||
# if active_state == state:
|
||||
# return
|
||||
print("ACTIVATE ", state)
|
||||
match(state):
|
||||
"init":
|
||||
for k in bodies:
|
||||
var ch = grabbing.get_grabbed(k)
|
||||
if !ch:
|
||||
continue
|
||||
var s = playback[state]["slave"]
|
||||
print("ungrab")
|
||||
print("SMART: ", s)
|
||||
grabbing.ungrab_character(k, s)
|
||||
capture_slave(ch, k)
|
||||
state = "engage"
|
||||
"engage":
|
||||
for k in bodies:
|
||||
if k.get_meta("smart_object"):
|
||||
continue
|
||||
for place in get_children():
|
||||
if place.name.begins_with("place"):
|
||||
if place.has_meta("busy"):
|
||||
# print("has npc")
|
||||
if !place.has_meta("master"):
|
||||
print("has no master")
|
||||
place.set_meta("master", k)
|
||||
k.set_meta("smart_object", true)
|
||||
print(k.name)
|
||||
place.get_meta("busy").smart_obj(playback[state]["slave"])
|
||||
place.get_meta("master").smart_obj(playback[state]["master"])
|
||||
state = "torture"
|
||||
"torture":
|
||||
for place in get_children():
|
||||
if place.name.begins_with("place"):
|
||||
if place.has_meta("busy"):
|
||||
if place.has_meta("master"):
|
||||
place.get_meta("busy").smart_obj(playback[state]["slave"])
|
||||
place.get_meta("master").smart_obj(playback[state]["master"])
|
||||
"force":
|
||||
for place in get_children():
|
||||
if place.name.begins_with("place"):
|
||||
if place.has_meta("busy"):
|
||||
if place.has_meta("master"):
|
||||
place.get_meta("busy").smart_obj(playback[state]["slave"])
|
||||
place.get_meta("master").smart_obj(playback[state]["master"])
|
||||
"force_s1":
|
||||
for place in get_children():
|
||||
if place.name.begins_with("place"):
|
||||
if place.has_meta("busy"):
|
||||
if place.has_meta("master"):
|
||||
place.get_meta("busy").smart_obj(playback[state]["slave"])
|
||||
place.get_meta("master").smart_obj(playback[state]["master"])
|
||||
"leave":
|
||||
for place in get_children():
|
||||
if place.has_meta("busy") && place.has_meta("master"):
|
||||
var m = place.get_meta("master")
|
||||
m.set_meta("smart_object", false)
|
||||
place.remove_meta("master")
|
||||
m.do_stop()
|
||||
var s = place.get_meta("busy")
|
||||
free_slave(s)
|
||||
place.remove_meta("busy")
|
||||
s.do_stop()
|
||||
var sub = rpg.get_submission(s)
|
||||
sub += 100.0
|
||||
s.set_meta("submission", sub)
|
||||
rpg.update_xp(m, 300.0)
|
||||
active_state = state
|
||||
func _ready():
|
||||
var e = $Area.connect("body_entered", self, "entered")
|
||||
assert(e == OK)
|
||||
e = $Area.connect("body_exited", self, "exited")
|
||||
assert(e == OK)
|
||||
var act = false
|
||||
func _process(_delta):
|
||||
if Input.is_action_just_pressed("grab"):
|
||||
act = true
|
||||
func _physics_process(delta):
|
||||
if act:
|
||||
activate()
|
||||
act = false
|
||||
while move_queue.size() > 0:
|
||||
var item = move_queue.pop_front()
|
||||
item[0].global_transform = item[1].global_transform
|
||||
for place in get_children():
|
||||
if place.has_meta("busy"):
|
||||
place.get_meta("busy").global_transform = place.global_transform
|
||||
place.get_meta("busy").orientation.basis = place.global_transform.basis
|
||||
if place.has_meta("master"):
|
||||
place.get_meta("master").global_transform = place.global_transform
|
||||
place.get_meta("master").orientation.basis = place.global_transform.basis
|
||||
activate_delay -= delta
|
||||
if active_state == "torture":
|
||||
for place in get_children():
|
||||
if place.has_meta("busy") && place.has_meta("master"):
|
||||
var strength = rpg.get_strength(place.get_meta("master"))
|
||||
rpg.damage_stamina(place.get_meta("busy"), strength * 0.1 * delta)
|
||||
print(rpg.get_stamina(place.get_meta("busy")))
|
||||
if rpg.get_stamina(place.get_meta("busy")) <= 10.0:
|
||||
state = "force"
|
||||
activate_state()
|
||||
rpg.damage_stamina(place.get_meta("master"), 5.0 * delta)
|
||||
if active_state == "force":
|
||||
for place in get_children():
|
||||
if place.has_meta("busy") && place.has_meta("master"):
|
||||
var strength = rpg.get_strength(place.get_meta("master"))
|
||||
rpg.damage_stamina(place.get_meta("busy"), strength * 0.01 * delta)
|
||||
print(rpg.get_stamina(place.get_meta("busy")))
|
||||
if rpg.get_stamina(place.get_meta("busy")) <= 10.0:
|
||||
state = "force_s1"
|
||||
activate_state()
|
||||
rpg.damage_stamina(place.get_meta("master"), 1.0 * delta)
|
||||
if active_state == "force_s1":
|
||||
for place in get_children():
|
||||
if place.has_meta("busy") && place.has_meta("master"):
|
||||
var strength = rpg.get_strength(place.get_meta("master"))
|
||||
rpg.damage_stamina(place.get_meta("busy"), strength * 0.01 * delta)
|
||||
print(rpg.get_stamina(place.get_meta("busy")))
|
||||
rpg.damage_stamina(place.get_meta("master"), 1.0 * delta)
|
||||
if rpg.get_stamina(place.get_meta("busy")) <= 0.0:
|
||||
state = "leave"
|
||||
activate_state()
|
||||
if active_state == "leave":
|
||||
state = "init"
|
||||
active_state = ""
|
||||
# if bodies.size() == 0:
|
||||
# for k in get_children():
|
||||
# if k.name.begins_with("chair"):
|
||||
# var t: RigidBody = k
|
||||
# if t.mode != t.MODE_STATIC:
|
||||
# t.mode = t.MODE_STATIC
|
||||
|
||||
19
proto3/godot/scenes/furniture/table_chairs.tscn
Normal file
19
proto3/godot/scenes/furniture/table_chairs.tscn
Normal file
@@ -0,0 +1,19 @@
|
||||
[gd_scene load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://scenes/furniture/table_chairs.escn" type="PackedScene" id=1]
|
||||
[ext_resource path="res://scenes/furniture/table_chairs.gd" type="Script" id=2]
|
||||
|
||||
[sub_resource type="BoxShape" id=1]
|
||||
extents = Vector3( 0.727809, 0.43685, 0.887136 )
|
||||
|
||||
[node name="table_chairs" instance=ExtResource( 1 )]
|
||||
script = ExtResource( 2 )
|
||||
|
||||
[node name="Area" type="Area" parent="." index="7"]
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape" parent="Area" index="0"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.459258, 0 )
|
||||
shape = SubResource( 1 )
|
||||
|
||||
[node name="place1" type="Spatial" parent="." index="8"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.443603, 0.615902 )
|
||||
Reference in New Issue
Block a user